public class com.sun.tools.javac.tree.JCTree$JCCompilationUnit extends com.sun.tools.javac.tree.JCTree implements com.sun.source.tree.CompilationUnitTree
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.tree.JCTree$JCCompilationUnit
  super_class: com.sun.tools.javac.tree.JCTree
{
  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree> defs;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;

  public javax.tools.JavaFileObject sourcefile;
    descriptor: Ljavax/tools/JavaFileObject;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.code.Symbol$ModuleSymbol modle;
    descriptor: Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0001) ACC_PUBLIC

  public javax.tools.JavaFileManager$Location locn;
    descriptor: Ljavax/tools/JavaFileManager$Location;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.code.Symbol$PackageSymbol packge;
    descriptor: Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.code.Scope$WriteableScope toplevelScope;
    descriptor: Lcom/sun/tools/javac/code/Scope$WriteableScope;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.code.Scope$NamedImportScope namedImportScope;
    descriptor: Lcom/sun/tools/javac/code/Scope$NamedImportScope;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.code.Scope$StarImportScope starImportScope;
    descriptor: Lcom/sun/tools/javac/code/Scope$StarImportScope;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.util.Position$LineMap lineMap;
    descriptor: Lcom/sun/tools/javac/util/Position$LineMap;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.tree.DocCommentTable docComments;
    descriptor: Lcom/sun/tools/javac/tree/DocCommentTable;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.tree.EndPosTable endPositions;
    descriptor: Lcom/sun/tools/javac/tree/EndPosTable;
    flags: (0x0001) ACC_PUBLIC

  protected void <init>(com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>);
    descriptor: (Lcom/sun/tools/javac/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
        start local 1 // com.sun.tools.javac.util.List defs
         0: .line 537
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree.<init>:()V
         1: .line 530
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.lineMap:Lcom/sun/tools/javac/util/Position$LineMap;
         2: .line 533
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.docComments:Lcom/sun/tools/javac/tree/DocCommentTable;
         3: .line 536
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.endPositions:Lcom/sun/tools/javac/tree/EndPosTable;
         4: .line 538
            aload 0 /* this */
            aload 1 /* defs */
            putfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.defs:Lcom/sun/tools/javac/util/List;
         5: .line 539
            return
        end local 1 // com.sun.tools.javac.util.List defs
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            0    6     1  defs  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;)V
    MethodParameters:
      Name  Flags
      defs  

  public void accept(com.sun.tools.javac.tree.JCTree$Visitor);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
        start local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
         0: .line 541
            aload 1 /* v */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$Visitor.visitTopLevel:(Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;)V
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            0    1     1     v  Lcom/sun/tools/javac/tree/JCTree$Visitor;
    MethodParameters:
      Name  Flags
      v     

  public com.sun.source.tree.Tree$Kind getKind();
    descriptor: ()Lcom/sun/source/tree/Tree$Kind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 544
            getstatic com.sun.source.tree.Tree$Kind.COMPILATION_UNIT:Lcom/sun/source/tree/Tree$Kind;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;

  public com.sun.tools.javac.tree.JCTree$JCModuleDecl getModuleDecl();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 547
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.defs:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCCompilationUnit top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            astore 1 /* tree */
        start local 1 // com.sun.tools.javac.tree.JCTree tree
         2: .line 548
            aload 1 /* tree */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.MODULEDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifeq 4
         3: .line 549
            aload 1 /* tree */
            checkcast com.sun.tools.javac.tree.JCTree$JCModuleDecl
            areturn
        end local 1 // com.sun.tools.javac.tree.JCTree tree
         4: .line 547
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 553
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            2    4     1  tree  Lcom/sun/tools/javac/tree/JCTree;

  public com.sun.tools.javac.tree.JCTree$JCModuleDecl getModule();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 558
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getModuleDecl:()Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;

  public com.sun.tools.javac.tree.JCTree$JCPackageDecl getPackage();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 564
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.defs:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 2
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.defs:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            getstatic com.sun.tools.javac.tree.JCTree$Tag.PACKAGEDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifeq 2
         1: .line 565
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.defs:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCPackageDecl
            areturn
         2: .line 566
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCAnnotation> getPackageAnnotations();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 570
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getPackage:()Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;
            astore 1 /* pd */
        start local 1 // com.sun.tools.javac.tree.JCTree$JCPackageDecl pd
         1: .line 571
            aload 1 /* pd */
            ifnull 2
            aload 1 /* pd */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCPackageDecl.getAnnotations:()Lcom/sun/tools/javac/util/List;
            goto 3
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCPackageDecl
      StackMap stack:
         2: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.util.List
         3: areturn
        end local 1 // com.sun.tools.javac.tree.JCTree$JCPackageDecl pd
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            1    4     1    pd  Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCAnnotation;>;

  public com.sun.source.tree.ExpressionTree getPackageName();
    descriptor: ()Lcom/sun/source/tree/ExpressionTree;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 575
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getPackage:()Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;
            astore 1 /* pd */
        start local 1 // com.sun.tools.javac.tree.JCTree$JCPackageDecl pd
         1: .line 576
            aload 1 /* pd */
            ifnull 2
            aload 1 /* pd */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCPackageDecl.getPackageName:()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            goto 3
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCPackageDecl
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: com.sun.tools.javac.tree.JCTree$JCExpression
         3: areturn
        end local 1 // com.sun.tools.javac.tree.JCTree$JCPackageDecl pd
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            1    4     1    pd  Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCImport> getImports();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 581
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 1 /* imports */
        start local 1 // com.sun.tools.javac.util.ListBuffer imports
         1: .line 582
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.defs:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCCompilationUnit com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            astore 2 /* tree */
        start local 2 // com.sun.tools.javac.tree.JCTree tree
         3: .line 583
            aload 2 /* tree */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.IMPORT:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifeq 5
         4: .line 584
            aload 1 /* imports */
            aload 2 /* tree */
            checkcast com.sun.tools.javac.tree.JCTree$JCImport
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
            goto 7
         5: .line 585
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCCompilationUnit com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator
      StackMap stack:
            aload 2 /* tree */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.PACKAGEDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifne 7
            aload 2 /* tree */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.SKIP:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifne 7
         6: .line 586
            goto 8
        end local 2 // com.sun.tools.javac.tree.JCTree tree
         7: .line 582
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCCompilationUnit com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 588
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCCompilationUnit com.sun.tools.javac.util.ListBuffer
      StackMap stack:
            aload 1 /* imports */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.util.ListBuffer imports
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            1    9     1  imports  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/tree/JCTree$JCImport;>;
            3    7     2     tree  Lcom/sun/tools/javac/tree/JCTree;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCImport;>;

  public javax.tools.JavaFileObject getSourceFile();
    descriptor: ()Ljavax/tools/JavaFileObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 592
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.sourcefile:Ljavax/tools/JavaFileObject;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;

  public com.sun.tools.javac.util.Position$LineMap getLineMap();
    descriptor: ()Lcom/sun/tools/javac/util/Position$LineMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 596
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.lineMap:Lcom/sun/tools/javac/util/Position$LineMap;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree> getTypeDecls();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 601
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.defs:Lcom/sun/tools/javac/util/List;
            astore 1 /* typeDefs */
        start local 1 // com.sun.tools.javac.util.List typeDefs
         1: goto 6
         2: .line 602
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 1 /* typeDefs */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            getstatic com.sun.tools.javac.tree.JCTree$Tag.MODULEDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifne 5
         3: .line 603
            aload 1 /* typeDefs */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            getstatic com.sun.tools.javac.tree.JCTree$Tag.PACKAGEDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifne 5
            aload 1 /* typeDefs */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            getstatic com.sun.tools.javac.tree.JCTree$Tag.IMPORT:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifne 5
         4: .line 604
            goto 7
         5: .line 601
      StackMap locals:
      StackMap stack:
            aload 1 /* typeDefs */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* typeDefs */
      StackMap locals:
      StackMap stack:
         6: aload 1 /* typeDefs */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 2
         7: .line 607
      StackMap locals:
      StackMap stack:
            aload 1 /* typeDefs */
            areturn
        end local 1 // com.sun.tools.javac.util.List typeDefs
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            1    8     1  typeDefs  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;

  public <R, D> R accept(com.sun.source.tree.TreeVisitor<R, D>, );
    descriptor: (Lcom/sun/source/tree/TreeVisitor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
        start local 1 // com.sun.source.tree.TreeVisitor v
        start local 2 // java.lang.Object d
         0: .line 611
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* d */
            invokeinterface com.sun.source.tree.TreeVisitor.visitCompilationUnit:(Lcom/sun/source/tree/CompilationUnitTree;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object d
        end local 1 // com.sun.source.tree.TreeVisitor v
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            0    1     1     v  Lcom/sun/source/tree/TreeVisitor<TR;TD;>;
            0    1     2     d  TD;
    Signature: <R:Ljava/lang/Object;D:Ljava/lang/Object;>(Lcom/sun/source/tree/TreeVisitor<TR;TD;>;TD;)TR;
    MethodParameters:
      Name  Flags
      v     
      d     

  public com.sun.tools.javac.tree.JCTree$Tag getTag();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$Tag;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
         0: .line 616
            getstatic com.sun.tools.javac.tree.JCTree$Tag.TOPLEVEL:Lcom/sun/tools/javac/tree/JCTree$Tag;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCCompilationUnit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;

  public com.sun.source.tree.PackageTree getPackage();
    descriptor: ()Lcom/sun/source/tree/PackageTree;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getPackage:()Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getImports();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getImports:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getPackageAnnotations();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getPackageAnnotations:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.sun.source.tree.ModuleTree getModule();
    descriptor: ()Lcom/sun/source/tree/ModuleTree;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getModule:()Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getTypeDecls();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getTypeDecls:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.sun.source.tree.LineMap getLineMap();
    descriptor: ()Lcom/sun/source/tree/LineMap;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.tree.JCTree$JCCompilationUnit.getLineMap:()Lcom/sun/tools/javac/util/Position$LineMap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JCTree.java"
NestHost: com.sun.tools.javac.tree.JCTree
InnerClasses:
  public final Kind = com.sun.source.tree.Tree$Kind of com.sun.source.tree.Tree
  public NamedImportScope = com.sun.tools.javac.code.Scope$NamedImportScope of com.sun.tools.javac.code.Scope
  public StarImportScope = com.sun.tools.javac.code.Scope$StarImportScope of com.sun.tools.javac.code.Scope
  public abstract WriteableScope = com.sun.tools.javac.code.Scope$WriteableScope of com.sun.tools.javac.code.Scope
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public PackageSymbol = com.sun.tools.javac.code.Symbol$PackageSymbol of com.sun.tools.javac.code.Symbol
  public JCAnnotation = com.sun.tools.javac.tree.JCTree$JCAnnotation 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 JCImport = com.sun.tools.javac.tree.JCTree$JCImport of com.sun.tools.javac.tree.JCTree
  public JCModuleDecl = com.sun.tools.javac.tree.JCTree$JCModuleDecl of com.sun.tools.javac.tree.JCTree
  public JCPackageDecl = com.sun.tools.javac.tree.JCTree$JCPackageDecl of com.sun.tools.javac.tree.JCTree
  public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree
  public abstract Visitor = com.sun.tools.javac.tree.JCTree$Visitor of com.sun.tools.javac.tree.JCTree
  public abstract LineMap = com.sun.tools.javac.util.Position$LineMap of com.sun.tools.javac.util.Position
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager