public class com.sun.tools.javac.tree.JCTree$JCVariableDecl extends com.sun.tools.javac.tree.JCTree$JCStatement implements com.sun.source.tree.VariableTree
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.tree.JCTree$JCVariableDecl
  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.tree.JCTree$JCExpression nameexpr;
    descriptor: Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    flags: (0x0001) ACC_PUBLIC

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

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

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

  public int startPos;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  protected void <init>(com.sun.tools.javac.tree.JCTree$JCModifiers, com.sun.tools.javac.util.Name, com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.code.Symbol$VarSymbol);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCModifiers;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$VarSymbol;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl 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.tree.JCTree$JCExpression vartype
        start local 4 // com.sun.tools.javac.tree.JCTree$JCExpression init
        start local 5 // com.sun.tools.javac.code.Symbol$VarSymbol sym
         0: .line 961
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$JCStatement.<init>:()V
         1: .line 959
            aload 0 /* this */
            iconst_m1
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.startPos:I
         2: .line 966
            aload 0 /* this */
            aload 1 /* mods */
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
         3: .line 967
            aload 0 /* this */
            aload 2 /* name */
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.name:Lcom/sun/tools/javac/util/Name;
         4: .line 968
            aload 0 /* this */
            aload 3 /* vartype */
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.vartype:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
         5: .line 969
            aload 0 /* this */
            aload 4 /* init */
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.init:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
         6: .line 970
            aload 0 /* this */
            aload 5 /* sym */
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.sym:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
         7: .line 971
            return
        end local 5 // com.sun.tools.javac.code.Symbol$VarSymbol sym
        end local 4 // com.sun.tools.javac.tree.JCTree$JCExpression init
        end local 3 // com.sun.tools.javac.tree.JCTree$JCExpression vartype
        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$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
            0    8     1     mods  Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            0    8     2     name  Lcom/sun/tools/javac/util/Name;
            0    8     3  vartype  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    8     4     init  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    8     5      sym  Lcom/sun/tools/javac/code/Symbol$VarSymbol;
    MethodParameters:
         Name  Flags
      mods     
      name     
      vartype  
      init     
      sym      

  protected void <init>(com.sun.tools.javac.tree.JCTree$JCModifiers, com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.tree.JCTree$JCExpression);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCModifiers;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/tree/JCTree$JCExpression;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCModifiers mods
        start local 2 // com.sun.tools.javac.tree.JCTree$JCExpression nameexpr
        start local 3 // com.sun.tools.javac.tree.JCTree$JCExpression vartype
         0: .line 976
            aload 0 /* this */
            aload 1 /* mods */
            aconst_null
            aload 3 /* vartype */
            aconst_null
            aconst_null
            invokespecial com.sun.tools.javac.tree.JCTree$JCVariableDecl.<init>:(Lcom/sun/tools/javac/tree/JCTree$JCModifiers;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$VarSymbol;)V
         1: .line 977
            aload 0 /* this */
            aload 2 /* nameexpr */
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.nameexpr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
         2: .line 978
            aload 2 /* nameexpr */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.IDENT:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifeq 5
         3: .line 979
            aload 0 /* this */
            aload 2 /* nameexpr */
            checkcast com.sun.tools.javac.tree.JCTree$JCIdent
            getfield com.sun.tools.javac.tree.JCTree$JCIdent.name:Lcom/sun/tools/javac/util/Name;
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.name:Lcom/sun/tools/javac/util/Name;
         4: .line 980
            goto 6
         5: .line 982
      StackMap locals: com.sun.tools.javac.tree.JCTree$JCVariableDecl com.sun.tools.javac.tree.JCTree$JCModifiers com.sun.tools.javac.tree.JCTree$JCExpression com.sun.tools.javac.tree.JCTree$JCExpression
      StackMap stack:
            aload 0 /* this */
            aload 2 /* nameexpr */
            checkcast com.sun.tools.javac.tree.JCTree$JCFieldAccess
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.name:Lcom/sun/tools/javac/util/Name;
            putfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.name:Lcom/sun/tools/javac/util/Name;
         6: .line 984
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.tree.JCTree$JCExpression vartype
        end local 2 // com.sun.tools.javac.tree.JCTree$JCExpression nameexpr
        end local 1 // com.sun.tools.javac.tree.JCTree$JCModifiers mods
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
            0    7     1      mods  Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            0    7     2  nameexpr  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    7     3   vartype  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    MethodParameters:
          Name  Flags
      mods      
      nameexpr  
      vartype   

  public boolean isImplicitlyTyped();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
         0: .line 987
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.vartype:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;

  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$JCVariableDecl this
        start local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
         0: .line 991
            aload 1 /* v */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$Visitor.visitVarDef:(Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;)V
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
            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$JCVariableDecl this
         0: .line 994
            getstatic com.sun.source.tree.Tree$Kind.VARIABLE:Lcom/sun/source/tree/Tree$Kind;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;

  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$JCVariableDecl this
         0: .line 996
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;

  public com.sun.tools.javac.util.Name getName();
    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$JCVariableDecl this
         0: .line 998
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.name:Lcom/sun/tools/javac/util/Name;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;

  public com.sun.tools.javac.tree.JCTree$JCExpression getNameExpression();
    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$JCVariableDecl this
         0: .line 1000
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.nameexpr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;

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

  public com.sun.tools.javac.tree.JCTree$JCExpression getInitializer();
    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$JCVariableDecl this
         0: .line 1005
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.init:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;

  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$JCVariableDecl this
        start local 1 // com.sun.source.tree.TreeVisitor v
        start local 2 // java.lang.Object d
         0: .line 1009
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* d */
            invokeinterface com.sun.source.tree.TreeVisitor.visitVariable:(Lcom/sun/source/tree/VariableTree;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$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
            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$JCVariableDecl this
         0: .line 1014
            getstatic com.sun.tools.javac.tree.JCTree$Tag.VARDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCVariableDecl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;

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

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

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

  public javax.lang.model.element.Name getName();
    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$JCVariableDecl.getName:()Lcom/sun/tools/javac/util/Name;
            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 VarSymbol = com.sun.tools.javac.code.Symbol$VarSymbol of com.sun.tools.javac.code.Symbol
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
  public JCFieldAccess = com.sun.tools.javac.tree.JCTree$JCFieldAccess of com.sun.tools.javac.tree.JCTree
  public JCIdent = com.sun.tools.javac.tree.JCTree$JCIdent 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 JCVariableDecl = com.sun.tools.javac.tree.JCTree$JCVariableDecl 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