public class com.sun.tools.javac.tree.JCTree$JCClassDecl extends com.sun.tools.javac.tree.JCTree$JCStatement implements com.sun.source.tree.ClassTree
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.tree.JCTree$JCClassDecl
  super_class: com.sun.tools.javac.tree.JCTree$JCStatement
{
  public com.sun.tools.javac.tree.JCTree$JCModifiers mods;
    descriptor: Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.util.Name name;
    descriptor: Lcom/sun/tools/javac/util/Name;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCTypeParameter> typarams;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCTypeParameter;>;

  public com.sun.tools.javac.tree.JCTree$JCExpression extending;
    descriptor: Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCExpression> implementing;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCExpression;>;

  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 com.sun.tools.javac.code.Symbol$ClassSymbol sym;
    descriptor: Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    flags: (0x0001) ACC_PUBLIC

  protected void <init>(com.sun.tools.javac.tree.JCTree$JCModifiers, com.sun.tools.javac.util.Name, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCTypeParameter>, com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCExpression>, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>, com.sun.tools.javac.code.Symbol$ClassSymbol);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCModifiers;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCModifiers mods
        start local 2 // com.sun.tools.javac.util.Name name
        start local 3 // com.sun.tools.javac.util.List typarams
        start local 4 // com.sun.tools.javac.tree.JCTree$JCExpression extending
        start local 5 // com.sun.tools.javac.util.List implementing
        start local 6 // com.sun.tools.javac.util.List defs
        start local 7 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
         0: .line 769
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$JCStatement.<init>:()V
         1: .line 777
            aload 0 /* this */
            aload 1 /* mods */
            putfield com.sun.tools.javac.tree.JCTree$JCClassDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
         2: .line 778
            aload 0 /* this */
            aload 2 /* name */
            putfield com.sun.tools.javac.tree.JCTree$JCClassDecl.name:Lcom/sun/tools/javac/util/Name;
         3: .line 779
            aload 0 /* this */
            aload 3 /* typarams */
            putfield com.sun.tools.javac.tree.JCTree$JCClassDecl.typarams:Lcom/sun/tools/javac/util/List;
         4: .line 780
            aload 0 /* this */
            aload 4 /* extending */
            putfield com.sun.tools.javac.tree.JCTree$JCClassDecl.extending:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
         5: .line 781
            aload 0 /* this */
            aload 5 /* implementing */
            putfield com.sun.tools.javac.tree.JCTree$JCClassDecl.implementing:Lcom/sun/tools/javac/util/List;
         6: .line 782
            aload 0 /* this */
            aload 6 /* defs */
            putfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
         7: .line 783
            aload 0 /* this */
            aload 7 /* sym */
            putfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
         8: .line 784
            return
        end local 7 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 6 // com.sun.tools.javac.util.List defs
        end local 5 // com.sun.tools.javac.util.List implementing
        end local 4 // com.sun.tools.javac.tree.JCTree$JCExpression extending
        end local 3 // com.sun.tools.javac.util.List typarams
        end local 2 // com.sun.tools.javac.util.Name name
        end local 1 // com.sun.tools.javac.tree.JCTree$JCModifiers mods
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            0    9     1          mods  Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            0    9     2          name  Lcom/sun/tools/javac/util/Name;
            0    9     3      typarams  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCTypeParameter;>;
            0    9     4     extending  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    9     5  implementing  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCExpression;>;
            0    9     6          defs  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
            0    9     7           sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    Signature: (Lcom/sun/tools/javac/tree/JCTree$JCModifiers;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCTypeParameter;>;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCExpression;>;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
    MethodParameters:
              Name  Flags
      mods          
      name          
      typarams      
      extending     
      implementing  
      defs          
      sym           

  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$JCClassDecl this
        start local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
         0: .line 786
            aload 1 /* v */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$Visitor.visitClassDef:(Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;)V
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            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=4, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
         0: .line 791
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            getfield com.sun.tools.javac.tree.JCTree$JCModifiers.flags:J
            ldc 8192
            land
            lconst_0
            lcmp
            ifeq 2
         1: .line 792
            getstatic com.sun.source.tree.Tree$Kind.ANNOTATION_TYPE:Lcom/sun/source/tree/Tree$Kind;
            areturn
         2: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            getfield com.sun.tools.javac.tree.JCTree$JCModifiers.flags:J
            ldc 512
            land
            lconst_0
            lcmp
            ifeq 4
         3: .line 794
            getstatic com.sun.source.tree.Tree$Kind.INTERFACE:Lcom/sun/source/tree/Tree$Kind;
            areturn
         4: .line 795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            getfield com.sun.tools.javac.tree.JCTree$JCModifiers.flags:J
            ldc 16384
            land
            lconst_0
            lcmp
            ifeq 6
         5: .line 796
            getstatic com.sun.source.tree.Tree$Kind.ENUM:Lcom/sun/source/tree/Tree$Kind;
            areturn
         6: .line 797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            getfield com.sun.tools.javac.tree.JCTree$JCModifiers.flags:J
            ldc 2305843009213693952
            land
            lconst_0
            lcmp
            ifeq 8
         7: .line 798
            getstatic com.sun.source.tree.Tree$Kind.RECORD:Lcom/sun/source/tree/Tree$Kind;
            areturn
         8: .line 800
      StackMap locals:
      StackMap stack:
            getstatic com.sun.source.tree.Tree$Kind.CLASS:Lcom/sun/source/tree/Tree$Kind;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;

  public com.sun.tools.javac.tree.JCTree$JCModifiers getModifiers();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
         0: .line 804
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;

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

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCTypeParameter> getTypeParameters();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
         0: .line 809
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.typarams:Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCTypeParameter;>;

  public com.sun.tools.javac.tree.JCTree$JCExpression getExtendsClause();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
         0: .line 812
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.extending:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCExpression> getImplementsClause();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
         0: .line 815
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.implementing:Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCExpression;>;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree> getMembers();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
         0: .line 819
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
    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$JCClassDecl this
        start local 1 // com.sun.source.tree.TreeVisitor v
        start local 2 // java.lang.Object d
         0: .line 823
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* d */
            invokeinterface com.sun.source.tree.TreeVisitor.visitClass:(Lcom/sun/source/tree/ClassTree;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$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            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$JCClassDecl this
         0: .line 828
            getstatic com.sun.tools.javac.tree.JCTree$Tag.CLASSDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCClassDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;

  public javax.lang.model.element.Name getSimpleName();
    descriptor: ()Ljavax/lang/model/element/Name;
    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$JCClassDecl.getSimpleName:()Lcom/sun/tools/javac/util/Name;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getTypeParameters();
    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$JCClassDecl.getTypeParameters:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getImplementsClause();
    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$JCClassDecl.getImplementsClause:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getMembers();
    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$JCClassDecl.getMembers:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.sun.source.tree.Tree getExtendsClause();
    descriptor: ()Lcom/sun/source/tree/Tree;
    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$JCClassDecl.getExtendsClause:()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.sun.source.tree.ModifiersTree getModifiers();
    descriptor: ()Lcom/sun/source/tree/ModifiersTree;
    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$JCClassDecl.getModifiers:()Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            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 ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public JCClassDecl = com.sun.tools.javac.tree.JCTree$JCClassDecl 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 abstract JCStatement = com.sun.tools.javac.tree.JCTree$JCStatement 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 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