Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8058244

missing error in qualified default super call

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b124
    • Verification:
      Verified

      Description

      Java 8 supports a new use of super:

      interface I {
      default int f(){return 0;}
      }

      class X implements I {
      public int f() {
      return I.super.f();
      }
      }

      This is described in 15.12.1.

      However, there is wording in 15.12.1 that says: Let T be the type declaration immediately enclosing the method invocation. It is a compile-time error if I is not a direct superinterface of T, or if there exists some other direct superclass or direct superinterface of T, J, such that J is a subtype of I.

      That would seem to require an error on this case, because T has a superclass of J, which is a subtype of I.

      interface I {
              default int f(){return 0;}
      }
      class J implements I { }
      class T extends J implements I {
              public int f() {
                      return I.super.f();
              }
      }

        Attachments

          Issue Links

          There are no Sub-Tasks for this issue.

            Activity

              People

              Assignee:
              vromero Vicente Arturo Romero Zaldivar
              Reporter:
              mcimadamore Maurizio Cimadamore
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: