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

13.1: Note that references may occur to other enclosing classes

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 11
    • Fix Version/s: tbd_major
    • Component/s: specification
    • Labels:

      Description

      For JEP 181 (JDK-8177019), it was proposed to expand the 13.1 rule about references to enclosing classes, from:

      "Every nested class and nested interface must have a symbolic reference to its immediately enclosing class (§8.1.3)."

      to:

      "Every nested class and nested interface must have symbolic references to all of its enclosing classes (§8.1.3)."

      The argument for including a reference to every enclosing class, not just the immediately enclosing class, centered on the InnerClasses attribute. Namely, if a nested class's class file contained a reference to the immediately enclosing class, then the InnerClasses attribute required a reference to the enclosing class of that class, and so on. However, this argument fails to acknowledge that local and anonymous classes have an outer_class_info_index of 0; this breaks the chain, and no further enclosing classes are referenced.

      Still, it may be useful to add a non-normative observation about classes that may be referenced:

      "A nested class or nested interface may also include symbolic references to other enclosing classes."

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                abuckley Alex Buckley
                Reporter:
                dlsmith Dan Smith
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: