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 start local 1 0: aload 0
aload 1
invokespecial com.sun.tools.javac.jvm.StringConcat.<init>:(Lcom/sun/tools/javac/util/Context;)V
1: return
end local 1 end local 0 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 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCAssignOp.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
aload 1
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
start local 2 1: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$Indy.gen:Lcom/sun/tools/javac/jvm/Gen;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCAssignOp.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
aload 1
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
start local 3 2: aload 3
invokevirtual com.sun.tools.javac.jvm.Items$Item.duplicate:()V
3: aload 3
invokevirtual com.sun.tools.javac.jvm.Items$Item.load:()Lcom/sun/tools/javac/jvm/Items$Item;
pop
4: aload 0
aload 1
invokevirtual com.sun.tools.javac.tree.JCTree$JCAssignOp.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
aload 2
iconst_0
aload 1
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: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCBinary.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
aload 1
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
start local 2 1: aload 0
aload 1
invokevirtual com.sun.tools.javac.tree.JCTree$JCBinary.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
aload 2
iconst_1
aload 1
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: aload 0
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
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 end local 1 end local 0 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 start local 1 0: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 4
start local 4 3: aload 1
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
start local 5 5: aload 5
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
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
start local 7 9: iload 3
iload 7
iadd
sipush 200
if_icmplt 13
10: aload 2
aload 4
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: aload 4
invokevirtual com.sun.tools.javac.util.ListBuffer.clear:()V
12: iconst_0
istore 3
13: StackMap locals: int
StackMap stack:
aload 4
aload 5
invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
pop
14: iload 3
iload 7
iadd
istore 3
end local 7 end local 5 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:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
16: aload 4
invokevirtual com.sun.tools.javac.util.ListBuffer.isEmpty:()Z
ifne 18
17: aload 2
aload 4
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: 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
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 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