final class com.sun.tools.javac.comp.TypeEnter$HeaderPhase extends com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.tools.javac.comp.TypeEnter$HeaderPhase
  super_class: com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase
{
  final com.sun.tools.javac.comp.TypeEnter this$0;
    descriptor: Lcom/sun/tools/javac/comp/TypeEnter;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(com.sun.tools.javac.comp.TypeEnter);
    descriptor: (Lcom/sun/tools/javac/comp/TypeEnter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$HeaderPhase this
         0: .line 809
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
         1: .line 810
            aload 0 /* this */
            aload 1
            getstatic com.sun.tools.javac.util.Dependencies$CompletionCause.HEADER_PHASE:Lcom/sun/tools/javac/util/Dependencies$CompletionCause;
            new com.sun.tools.javac.comp.TypeEnter$RecordPhase
            dup
            aload 1
            invokespecial com.sun.tools.javac.comp.TypeEnter$RecordPhase.<init>:(Lcom/sun/tools/javac/comp/TypeEnter;)V
            invokespecial com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase.<init>:(Lcom/sun/tools/javac/comp/TypeEnter;Lcom/sun/tools/javac/util/Dependencies$CompletionCause;Lcom/sun/tools/javac/comp/TypeEnter$Phase;)V
         2: .line 811
            return
        end local 0 // com.sun.tools.javac.comp.TypeEnter$HeaderPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/comp/TypeEnter$HeaderPhase;
    MethodParameters:
        Name  Flags
      this$0  final

  protected void runPhase(com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>);
    descriptor: (Lcom/sun/tools/javac/comp/Env;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$HeaderPhase this
        start local 1 // com.sun.tools.javac.comp.Env env
         0: .line 815
            aload 1 /* env */
            getfield com.sun.tools.javac.comp.Env.enclClass:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            astore 2 /* tree */
        start local 2 // com.sun.tools.javac.tree.JCTree$JCClassDecl tree
         1: .line 816
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            astore 3 /* sym */
        start local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
         2: .line 817
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            pop
         3: .line 820
            aload 0 /* this */
            aload 2 /* tree */
            aload 1 /* env */
            invokevirtual com.sun.tools.javac.comp.TypeEnter$HeaderPhase.baseEnv:(Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;Lcom/sun/tools/javac/comp/Env;)Lcom/sun/tools/javac/comp/Env;
            astore 4 /* baseEnv */
        start local 4 // com.sun.tools.javac.comp.Env baseEnv
         4: .line 822
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.extending:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            ifnull 6
         5: .line 823
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.annotate:Lcom/sun/tools/javac/comp/Annotate;
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.extending:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 4 /* baseEnv */
            aload 3 /* sym */
            aload 2 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            invokevirtual com.sun.tools.javac.comp.Annotate.queueScanTreeAndTypeAnnotate:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
         6: .line 824
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.comp.Env
      StackMap stack:
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.implementing:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: com.sun.tools.javac.comp.TypeEnter$HeaderPhase com.sun.tools.javac.comp.Env com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.comp.Env top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCExpression
            astore 5 /* impl */
        start local 5 // com.sun.tools.javac.tree.JCTree$JCExpression impl
         8: .line 825
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.annotate:Lcom/sun/tools/javac/comp/Annotate;
            aload 5 /* impl */
            aload 4 /* baseEnv */
            aload 3 /* sym */
            aload 2 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            invokevirtual com.sun.tools.javac.comp.Annotate.queueScanTreeAndTypeAnnotate:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
        end local 5 // com.sun.tools.javac.tree.JCTree$JCExpression impl
         9: .line 824
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 826
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.annotate:Lcom/sun/tools/javac/comp/Annotate;
            invokevirtual com.sun.tools.javac.comp.Annotate.flush:()V
        11: .line 828
            aload 0 /* this */
            aload 1 /* env */
            aload 4 /* baseEnv */
            invokevirtual com.sun.tools.javac.comp.TypeEnter$HeaderPhase.attribSuperTypes:(Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Env;)V
        12: .line 830
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* interfaceSet */
        start local 5 // java.util.Set interfaceSet
        13: .line 832
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.implementing:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 18
      StackMap locals: com.sun.tools.javac.comp.TypeEnter$HeaderPhase com.sun.tools.javac.comp.Env com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.comp.Env java.util.Set top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCExpression
            astore 6 /* iface */
        start local 6 // com.sun.tools.javac.tree.JCTree$JCExpression iface
        15: .line 833
            aload 6 /* iface */
            getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
            astore 8 /* it */
        start local 8 // com.sun.tools.javac.code.Type it
        16: .line 834
            aload 8 /* it */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 18
        17: .line 835
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.chk:Lcom/sun/tools/javac/comp/Check;
            aload 6 /* iface */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.types:Lcom/sun/tools/javac/code/Types;
            aload 8 /* it */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 5 /* interfaceSet */
            invokevirtual com.sun.tools.javac.comp.Check.checkNotRepeated:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;Ljava/util/Set;)V
        end local 8 // com.sun.tools.javac.code.Type it
        end local 6 // com.sun.tools.javac.tree.JCTree$JCExpression iface
        18: .line 832
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        19: .line 838
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.annotate:Lcom/sun/tools/javac/comp/Annotate;
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            getfield com.sun.tools.javac.tree.JCTree$JCModifiers.annotations:Lcom/sun/tools/javac/util/List;
            aload 4 /* baseEnv */
        20: .line 839
            aload 3 /* sym */
            aload 2 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
        21: .line 838
            invokevirtual com.sun.tools.javac.comp.Annotate.annotateLater:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
        22: .line 840
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.typarams:Lcom/sun/tools/javac/util/List;
            aload 4 /* baseEnv */
            iconst_0
            invokevirtual com.sun.tools.javac.comp.Attr.attribTypeVariables:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/Env;Z)V
        23: .line 842
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.typarams:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 26
      StackMap locals:
      StackMap stack:
        24: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCTypeParameter
            astore 6 /* tp */
        start local 6 // com.sun.tools.javac.tree.JCTree$JCTypeParameter tp
        25: .line 843
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.annotate:Lcom/sun/tools/javac/comp/Annotate;
            aload 6 /* tp */
            aload 4 /* baseEnv */
            aload 3 /* sym */
            aload 2 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            invokevirtual com.sun.tools.javac.comp.Annotate.queueScanTreeAndTypeAnnotate:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
        end local 6 // com.sun.tools.javac.tree.JCTree$JCTypeParameter tp
        26: .line 842
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        27: .line 849
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.PCK:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 30
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            aload 1 /* env */
            getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.modle:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.unnamedPackage:Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            if_acmpeq 30
        28: .line 850
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 1 /* env */
            getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.modle:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.fullname:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Symtab.packageExists:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Z
            ifeq 30
        29: .line 851
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$HeaderPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.log:Lcom/sun/tools/javac/util/Log;
            aload 2 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.pos:I
            aload 3 /* sym */
            invokestatic com.sun.tools.javac.code.Kinds.kindName:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Kinds$KindName;
            aload 3 /* sym */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ClashWithPkgOfSameName:(Lcom/sun/tools/javac/code/Kinds$KindName;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(ILcom/sun/tools/javac/util/JCDiagnostic$Error;)V
        30: .line 853
      StackMap locals: com.sun.tools.javac.comp.TypeEnter$HeaderPhase com.sun.tools.javac.comp.Env com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.comp.Env java.util.Set
      StackMap stack:
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.PCK:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 33
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
            lconst_1
            land
            lconst_0
            lcmp
            ifne 33
        31: .line 854
            aload 1 /* env */
            getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.sourcefile:Ljavax/tools/JavaFileObject;
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
            invokeinterface javax.tools.JavaFileObject.isNameCompatible:(Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;)Z
            ifne 33
        32: .line 855
            aload 3 /* sym */
            dup
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
            ldc 17592186044416
            lor
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
        33: .line 857
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.Set interfaceSet
        end local 4 // com.sun.tools.javac.comp.Env baseEnv
        end local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 2 // com.sun.tools.javac.tree.JCTree$JCClassDecl tree
        end local 1 // com.sun.tools.javac.comp.Env env
        end local 0 // com.sun.tools.javac.comp.TypeEnter$HeaderPhase this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   34     0          this  Lcom/sun/tools/javac/comp/TypeEnter$HeaderPhase;
            0   34     1           env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            1   34     2          tree  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            2   34     3           sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            4   34     4       baseEnv  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            8    9     5          impl  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
           13   34     5  interfaceSet  Ljava/util/Set<Lcom/sun/tools/javac/code/Type;>;
           15   18     6         iface  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
           16   18     8            it  Lcom/sun/tools/javac/code/Type;
           25   26     6            tp  Lcom/sun/tools/javac/tree/JCTree$JCTypeParameter;
    Signature: (Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;)V
    MethodParameters:
      Name  Flags
      env   
}
SourceFile: "TypeEnter.java"
NestHost: com.sun.tools.javac.comp.TypeEnter
InnerClasses:
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public final KindName = com.sun.tools.javac.code.Kinds$KindName of com.sun.tools.javac.code.Kinds
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public ClassType = com.sun.tools.javac.code.Type$ClassType of com.sun.tools.javac.code.Type
  private abstract AbstractHeaderPhase = com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase of com.sun.tools.javac.comp.TypeEnter
  private final HeaderPhase = com.sun.tools.javac.comp.TypeEnter$HeaderPhase of com.sun.tools.javac.comp.TypeEnter
  abstract Phase = com.sun.tools.javac.comp.TypeEnter$Phase of com.sun.tools.javac.comp.TypeEnter
  private final RecordPhase = com.sun.tools.javac.comp.TypeEnter$RecordPhase of com.sun.tools.javac.comp.TypeEnter
  public Errors = com.sun.tools.javac.resources.CompilerProperties$Errors of com.sun.tools.javac.resources.CompilerProperties
  public JCAnnotation = com.sun.tools.javac.tree.JCTree$JCAnnotation of com.sun.tools.javac.tree.JCTree
  public JCClassDecl = com.sun.tools.javac.tree.JCTree$JCClassDecl of com.sun.tools.javac.tree.JCTree
  public JCCompilationUnit = com.sun.tools.javac.tree.JCTree$JCCompilationUnit of com.sun.tools.javac.tree.JCTree
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
  public JCModifiers = com.sun.tools.javac.tree.JCTree$JCModifiers of com.sun.tools.javac.tree.JCTree
  public JCTypeParameter = com.sun.tools.javac.tree.JCTree$JCTypeParameter of com.sun.tools.javac.tree.JCTree
  public final CompletionCause = com.sun.tools.javac.util.Dependencies$CompletionCause of com.sun.tools.javac.util.Dependencies
  public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic
  public final Error = com.sun.tools.javac.util.JCDiagnostic$Error of com.sun.tools.javac.util.JCDiagnostic
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject