class com.sun.tools.javac.jvm.StringConcat$IndyPlain extends com.sun.tools.javac.jvm.StringConcat$Indy
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.jvm.StringConcat$IndyPlain
super_class: com.sun.tools.javac.jvm.StringConcat$Indy
{
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$Indy.<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$IndyPlain;
0 2 1 context Lcom/sun/tools/javac/util/Context;
MethodParameters:
Name Flags
context
protected void emit(com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition);
descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.sun.tools.javac.jvm.StringConcat$IndyPlain.split:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 4
start local 4 1: aload 4
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 18
StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
2: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.util.List
astore 5
start local 5 3: aload 5
invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
ifeq 4
iconst_0
goto 5
StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Iterator
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: ldc "Arguments list is empty"
invokestatic com.sun.tools.javac.util.Assert.check:(ZLjava/lang/String;)V
6: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 7
start local 7 7: aload 5
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 16
StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Iterator com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
8: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
astore 8
start local 8 9: aload 8
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.constValue:()Ljava/lang/Object;
astore 10
start local 10 10: ldc ""
aload 10
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
goto 16
11: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Iterator com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator java.lang.Object
StackMap stack:
aload 8
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
if_acmpne 14
12: aload 7
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.types:Lcom/sun/tools/javac/code/Types;
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.voidType:Lcom/sun/tools/javac/code/Type$JCVoidType;
invokevirtual com.sun.tools.javac.code.Types.boxedClass:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
pop
13: goto 15
14: StackMap locals:
StackMap stack:
aload 7
aload 0
aload 8
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.StringConcat$IndyPlain.sharpestAccessible:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
pop
15: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.gen:Lcom/sun/tools/javac/jvm/Gen;
aload 8
aload 8
getfield com.sun.tools.javac.tree.JCTree.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;
invokevirtual com.sun.tools.javac.jvm.Items$Item.load:()Lcom/sun/tools/javac/jvm/Items$Item;
pop
end local 10 end local 8 16: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Iterator com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
17: aload 0
aload 2
aload 3
aload 7
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.jvm.StringConcat$IndyPlain.doCall:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List;)V
end local 7 end local 5 18: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
19: aload 4
invokevirtual com.sun.tools.javac.util.List.size:()I
iconst_1
if_icmple 27
20: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 5
start local 5 21: iconst_0
istore 6
start local 6 22: goto 25
23: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int
StackMap stack:
aload 5
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.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.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
24: iinc 6 1
StackMap locals:
StackMap stack:
25: iload 6
aload 4
invokevirtual com.sun.tools.javac.util.List.size:()I
if_icmplt 23
end local 6 26: aload 0
aload 2
aload 3
aload 5
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.jvm.StringConcat$IndyPlain.doCall:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List;)V
end local 5 27: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/sun/tools/javac/jvm/StringConcat$IndyPlain;
0 28 1 args Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
0 28 2 type Lcom/sun/tools/javac/code/Type;
0 28 3 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
1 28 4 split Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;>;
3 18 5 t Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
7 18 7 dynamicArgs Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
9 16 8 arg Lcom/sun/tools/javac/tree/JCTree;
10 16 10 constVal Ljava/lang/Object;
21 27 5 argTypes Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
22 26 6 c I
Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
MethodParameters:
Name Flags
args
type
pos
private void doCall(com.sun.tools.javac.code.Type, com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.sun.tools.javac.code.Type$MethodType
dup
aload 3
1: aload 1
2: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
3: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.methodClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
4: invokespecial com.sun.tools.javac.code.Type$MethodType.<init>:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
astore 4
start local 4 5: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.make:Lcom/sun/tools/javac/tree/TreeMaker;
getfield com.sun.tools.javac.tree.TreeMaker.pos:I
istore 5
start local 5 6: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.make:Lcom/sun/tools/javac/tree/TreeMaker;
aload 2
invokevirtual com.sun.tools.javac.tree.TreeMaker.at:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Lcom/sun/tools/javac/tree/TreeMaker;
pop
7: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.methodHandleLookupType:Lcom/sun/tools/javac/code/Type;
8: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.stringType:Lcom/sun/tools/javac/code/Type;
9: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.methodTypeType:Lcom/sun/tools/javac/code/Type;
10: invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
astore 6
start local 6 11: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.rs:Lcom/sun/tools/javac/comp/Resolve;
aload 2
12: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.gen:Lcom/sun/tools/javac/jvm/Gen;
invokevirtual com.sun.tools.javac.jvm.Gen.getAttrEnv:()Lcom/sun/tools/javac/comp/Env;
13: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.stringConcatFactory:Lcom/sun/tools/javac/code/Type;
14: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.names:Lcom/sun/tools/javac/util/Names;
getfield com.sun.tools.javac.util.Names.makeConcat:Lcom/sun/tools/javac/util/Name;
15: aload 6
16: aconst_null
17: invokevirtual com.sun.tools.javac.comp.Resolve.resolveInternalMethod:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
astore 7
start local 7 18: new com.sun.tools.javac.code.Symbol$DynamicMethodSymbol
dup
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.names:Lcom/sun/tools/javac/util/Names;
getfield com.sun.tools.javac.util.Names.makeConcat:Lcom/sun/tools/javac/util/Name;
19: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.noSymbol:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
20: bipush 6
21: aload 7
checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
22: aload 4
23: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.toArray:()[Ljava/lang/Object;
24: invokespecial com.sun.tools.javac.code.Symbol$DynamicMethodSymbol.<init>:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;ILcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Type;[Ljava/lang/Object;)V
astore 8
start local 8 25: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.gen:Lcom/sun/tools/javac/jvm/Gen;
invokevirtual com.sun.tools.javac.jvm.Gen.getItems:()Lcom/sun/tools/javac/jvm/Items;
aload 8
invokevirtual com.sun.tools.javac.jvm.Items.makeDynamicItem:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/jvm/Items$Item;
astore 9
start local 9 26: aload 9
invokevirtual com.sun.tools.javac.jvm.Items$Item.invoke:()Lcom/sun/tools/javac/jvm/Items$Item;
pop
end local 9 end local 8 end local 7 end local 6 27: goto 31
StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.code.Type com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List com.sun.tools.javac.code.Type$MethodType int
StackMap stack: java.lang.Throwable
28: astore 10
29: aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.make:Lcom/sun/tools/javac/tree/TreeMaker;
iload 5
invokevirtual com.sun.tools.javac.tree.TreeMaker.at:(I)Lcom/sun/tools/javac/tree/TreeMaker;
pop
30: aload 10
athrow
31: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.make:Lcom/sun/tools/javac/tree/TreeMaker;
iload 5
invokevirtual com.sun.tools.javac.tree.TreeMaker.at:(I)Lcom/sun/tools/javac/tree/TreeMaker;
pop
32: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/sun/tools/javac/jvm/StringConcat$IndyPlain;
0 33 1 type Lcom/sun/tools/javac/code/Type;
0 33 2 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
0 33 3 dynamicArgTypes Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
5 33 4 indyType Lcom/sun/tools/javac/code/Type$MethodType;
6 33 5 prevPos I
11 27 6 bsm_staticArgs Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
18 27 7 bsm Lcom/sun/tools/javac/code/Symbol;
25 27 8 dynSym Lcom/sun/tools/javac/code/Symbol$DynamicMethodSymbol;
26 27 9 item Lcom/sun/tools/javac/jvm/Items$Item;
Exception table:
from to target type
6 28 28 any
Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)V
MethodParameters:
Name Flags
type
pos
dynamicArgTypes
}
SourceFile: "StringConcat.java"
NestHost: com.sun.tools.javac.jvm.StringConcat
InnerClasses:
public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
public DynamicMethodSymbol = com.sun.tools.javac.code.Symbol$DynamicMethodSymbol of com.sun.tools.javac.code.Symbol
public MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol of com.sun.tools.javac.code.Symbol
public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
public MethodType = com.sun.tools.javac.code.Type$MethodType of com.sun.tools.javac.code.Type
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
private IndyPlain = com.sun.tools.javac.jvm.StringConcat$IndyPlain of com.sun.tools.javac.jvm.StringConcat
public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic