abstract class com.sun.tools.javac.jvm.StringConcat$Indy extends com.sun.tools.javac.jvm.StringConcat
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.tools.javac.jvm.StringConcat$Indy
  super_class: com.sun.tools.javac.jvm.StringConcat
{
  public void <init>(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
        start local 1 // com.sun.tools.javac.util.Context context
         0: .line 259
            aload 0 /* this */
            aload 1 /* context */
            invokespecial com.sun.tools.javac.jvm.StringConcat.<init>:(Lcom/sun/tools/javac/util/Context;)V
         1: .line 260
            return
        end local 1 // com.sun.tools.javac.util.Context context
        end local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/sun/tools/javac/jvm/StringConcat$Indy;
            0    2     1  context  Lcom/sun/tools/javac/util/Context;
    MethodParameters:
         Name  Flags
      context  

  public com.sun.tools.javac.jvm.Items$Item makeConcat(com.sun.tools.javac.tree.JCTree$JCAssignOp);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCAssignOp;)Lcom/sun/tools/javac/jvm/Items$Item;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCAssignOp tree
         0: .line 264
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCAssignOp.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCAssignOp.rhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.jvm.StringConcat$Indy.collectAll:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/util/List;
            astore 2 /* args */
        start local 2 // com.sun.tools.javac.util.List args
         1: .line 265
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat$Indy.gen:Lcom/sun/tools/javac/jvm/Gen;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCAssignOp.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCAssignOp.lhs: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.genExpr:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/jvm/Items$Item;
            astore 3 /* l */
        start local 3 // com.sun.tools.javac.jvm.Items$Item l
         2: .line 266
            aload 3 /* l */
            invokevirtual com.sun.tools.javac.jvm.Items$Item.duplicate:()V
         3: .line 267
            aload 3 /* l */
            invokevirtual com.sun.tools.javac.jvm.Items$Item.load:()Lcom/sun/tools/javac/jvm/Items$Item;
            pop
         4: .line 268
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCAssignOp.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* args */
            iconst_0
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCAssignOp.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.jvm.StringConcat$Indy.emit:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List;ZLcom/sun/tools/javac/code/Type;)V
         5: .line 269
            aload 3 /* l */
            areturn
        end local 3 // com.sun.tools.javac.jvm.Items$Item l
        end local 2 // com.sun.tools.javac.util.List args
        end local 1 // com.sun.tools.javac.tree.JCTree$JCAssignOp tree
        end local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/jvm/StringConcat$Indy;
            0    6     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCAssignOp;
            1    6     2  args  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
            2    6     3     l  Lcom/sun/tools/javac/jvm/Items$Item;
    MethodParameters:
      Name  Flags
      tree  

  public com.sun.tools.javac.jvm.Items$Item makeConcat(com.sun.tools.javac.tree.JCTree$JCBinary);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCBinary;)Lcom/sun/tools/javac/jvm/Items$Item;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCBinary tree
         0: .line 274
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.rhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.jvm.StringConcat$Indy.collectAll:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/util/List;
            astore 2 /* args */
        start local 2 // com.sun.tools.javac.util.List args
         1: .line 275
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCBinary.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* args */
            iconst_1
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.jvm.StringConcat$Indy.emit:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List;ZLcom/sun/tools/javac/code/Type;)V
         2: .line 276
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat$Indy.gen:Lcom/sun/tools/javac/jvm/Gen;
            invokevirtual com.sun.tools.javac.jvm.Gen.getItems:()Lcom/sun/tools/javac/jvm/Items;
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat$Indy.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.stringType:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.jvm.Items.makeStackItem:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/jvm/Items$Item;
            areturn
        end local 2 // com.sun.tools.javac.util.List args
        end local 1 // com.sun.tools.javac.tree.JCTree$JCBinary tree
        end local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/jvm/StringConcat$Indy;
            0    3     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCBinary;
            1    3     2  args  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
    MethodParameters:
      Name  Flags
      tree  

  protected abstract void emit(com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>, boolean, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List;ZLcom/sun/tools/javac/code/Type;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;ZLcom/sun/tools/javac/code/Type;)V
    MethodParameters:
                  Name  Flags
      pos               
      args              
      generateFirstArg  
      type              

  protected com.sun.tools.javac.util.List<com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>> split(com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
        start local 1 // com.sun.tools.javac.util.List args
         0: .line 283
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* splits */
        start local 2 // com.sun.tools.javac.util.ListBuffer splits
         1: .line 285
            iconst_0
            istore 3 /* slots */
        start local 3 // int slots
         2: .line 289
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 4 /* cArgs */
        start local 4 // com.sun.tools.javac.util.ListBuffer cArgs
         3: .line 290
            aload 1 /* args */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: com.sun.tools.javac.jvm.StringConcat$Indy com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            astore 5 /* t */
        start local 5 // com.sun.tools.javac.tree.JCTree t
         5: .line 291
            aload 5 /* t */
            getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            getstatic com.sun.tools.javac.code.TypeTag.LONG:Lcom/sun/tools/javac/code/TypeTag;
            if_acmpeq 6
            aload 5 /* t */
            getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            getstatic com.sun.tools.javac.code.TypeTag.DOUBLE:Lcom/sun/tools/javac/code/TypeTag;
            if_acmpne 7
      StackMap locals: com.sun.tools.javac.jvm.StringConcat$Indy com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator
      StackMap stack:
         6: iconst_2
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 7 /* needSlots */
        start local 7 // int needSlots
         9: .line 292
            iload 3 /* slots */
            iload 7 /* needSlots */
            iadd
            sipush 200
            if_icmplt 13
        10: .line 293
            aload 2 /* splits */
            aload 4 /* cArgs */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        11: .line 294
            aload 4 /* cArgs */
            invokevirtual com.sun.tools.javac.util.ListBuffer.clear:()V
        12: .line 295
            iconst_0
            istore 3 /* slots */
        13: .line 297
      StackMap locals: int
      StackMap stack:
            aload 4 /* cArgs */
            aload 5 /* t */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        14: .line 298
            iload 3 /* slots */
            iload 7 /* needSlots */
            iadd
            istore 3 /* slots */
        end local 7 // int needSlots
        end local 5 // com.sun.tools.javac.tree.JCTree t
        15: .line 290
      StackMap locals: com.sun.tools.javac.jvm.StringConcat$Indy com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        16: .line 302
            aload 4 /* cArgs */
            invokevirtual com.sun.tools.javac.util.ListBuffer.isEmpty:()Z
            ifne 18
        17: .line 303
            aload 2 /* splits */
            aload 4 /* cArgs */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        18: .line 306
      StackMap locals: com.sun.tools.javac.jvm.StringConcat$Indy com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer
      StackMap stack:
            aload 2 /* splits */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 4 // com.sun.tools.javac.util.ListBuffer cArgs
        end local 3 // int slots
        end local 2 // com.sun.tools.javac.util.ListBuffer splits
        end local 1 // com.sun.tools.javac.util.List args
        end local 0 // com.sun.tools.javac.jvm.StringConcat$Indy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lcom/sun/tools/javac/jvm/StringConcat$Indy;
            0   19     1       args  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
            1   19     2     splits  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;>;
            2   19     3      slots  I
            3   19     4      cArgs  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/tree/JCTree;>;
            5   15     5          t  Lcom/sun/tools/javac/tree/JCTree;
            9   15     7  needSlots  I
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;>;
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "StringConcat.java"
NestHost: com.sun.tools.javac.jvm.StringConcat
InnerClasses:
  abstract Item = com.sun.tools.javac.jvm.Items$Item of com.sun.tools.javac.jvm.Items
  private abstract Indy = com.sun.tools.javac.jvm.StringConcat$Indy of com.sun.tools.javac.jvm.StringConcat
  public JCAssignOp = com.sun.tools.javac.tree.JCTree$JCAssignOp of com.sun.tools.javac.tree.JCTree
  public JCBinary = com.sun.tools.javac.tree.JCTree$JCBinary 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 abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic