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

13.1: Note that references may occur to other enclosing classes


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


      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)."


      "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."


          Issue Links



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


                • Created: