class com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor extends com.sun.tools.javac.tree.JCTree$Visitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor
  super_class: com.sun.tools.javac.tree.JCTree$Visitor
{
  final com.sun.tools.javac.jvm.Gen this$0;
    descriptor: Lcom/sun/tools/javac/jvm/Gen;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.sun.tools.javac.jvm.Gen);
    descriptor: (Lcom/sun/tools/javac/jvm/Gen;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
         0: .line 790
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor.this$0:Lcom/sun/tools/javac/jvm/Gen;
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$Visitor.<init>:()V
            return
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
    MethodParameters:
        Name  Flags
      this$0  final

  public void visitTree(com.sun.tools.javac.tree.JCTree);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
         0: .line 793
            return
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    1     1  tree  Lcom/sun/tools/javac/tree/JCTree;
    MethodParameters:
      Name  Flags
      tree  

  public void visitBinary(com.sun.tools.javac.tree.JCTree$JCBinary);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCBinary;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCBinary tree
         0: .line 797
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         1: .line 798
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.rhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         2: .line 799
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCBinary tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    3     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCBinary;
    MethodParameters:
      Name  Flags
      tree  

  public void visitSelect(com.sun.tools.javac.tree.JCTree$JCFieldAccess);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCFieldAccess tree
         0: .line 803
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.selected:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
            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 2
         1: .line 804
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor.this$0:Lcom/sun/tools/javac/jvm/Gen;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.selected:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.selected:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.jvm.Gen.makeRef:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;)I
            pop
         2: .line 806
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCFieldAccess tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    3     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;
    MethodParameters:
      Name  Flags
      tree  

  public void visitIdent(com.sun.tools.javac.tree.JCTree$JCIdent);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCIdent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCIdent tree
         0: .line 810
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCIdent.sym:Lcom/sun/tools/javac/code/Symbol;
            getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
            instanceof com.sun.tools.javac.code.Symbol$ClassSymbol
            ifeq 2
         1: .line 811
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor.this$0:Lcom/sun/tools/javac/jvm/Gen;
            getfield com.sun.tools.javac.jvm.Gen.poolWriter:Lcom/sun/tools/javac/jvm/PoolWriter;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCIdent.sym:Lcom/sun/tools/javac/code/Symbol;
            getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            invokevirtual com.sun.tools.javac.jvm.PoolWriter.putClass:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)I
            pop
         2: .line 813
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCIdent tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    3     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCIdent;
    MethodParameters:
      Name  Flags
      tree  

  public void visitConditional(com.sun.tools.javac.tree.JCTree$JCConditional);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCConditional;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCConditional tree
         0: .line 817
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCConditional.cond:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         1: .line 818
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCConditional.truepart:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         2: .line 819
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCConditional.falsepart:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         3: .line 820
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCConditional tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    4     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCConditional;
    MethodParameters:
      Name  Flags
      tree  

  public void visitUnary(com.sun.tools.javac.tree.JCTree$JCUnary);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCUnary;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCUnary tree
         0: .line 824
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCUnary.arg:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         1: .line 825
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCUnary tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCUnary;
    MethodParameters:
      Name  Flags
      tree  

  public void visitParens(com.sun.tools.javac.tree.JCTree$JCParens);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCParens;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCParens tree
         0: .line 829
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCParens.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         1: .line 830
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCParens tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCParens;
    MethodParameters:
      Name  Flags
      tree  

  public void visitTypeCast(com.sun.tools.javac.tree.JCTree$JCTypeCast);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCTypeCast;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCTypeCast tree
         0: .line 834
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCTypeCast.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         1: .line 835
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCTypeCast tree
        end local 0 // com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/jvm/Gen$ClassReferenceVisitor;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCTypeCast;
    MethodParameters:
      Name  Flags
      tree  
}
SourceFile: "Gen.java"
NestHost: com.sun.tools.javac.jvm.Gen
InnerClasses:
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  ClassReferenceVisitor = com.sun.tools.javac.jvm.Gen$ClassReferenceVisitor of com.sun.tools.javac.jvm.Gen
  public JCBinary = com.sun.tools.javac.tree.JCTree$JCBinary of com.sun.tools.javac.tree.JCTree
  public JCConditional = com.sun.tools.javac.tree.JCTree$JCConditional 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 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 JCParens = com.sun.tools.javac.tree.JCTree$JCParens of com.sun.tools.javac.tree.JCTree
  public JCTypeCast = com.sun.tools.javac.tree.JCTree$JCTypeCast of com.sun.tools.javac.tree.JCTree
  public JCUnary = com.sun.tools.javac.tree.JCTree$JCUnary 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 DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic