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.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: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 2
invokevirtual com.sun.tools.javac.jvm.StringConcat$IndyPlain.split:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 5
start local 5 1: iconst_1
istore 6
start local 6 2: aload 5
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 21
StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int top java.util.Iterator
StackMap stack:
3: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.util.List
astore 7
start local 7 4: aload 7
invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
ifeq 5
iconst_0
goto 6
StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int com.sun.tools.javac.util.List java.util.Iterator
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: ldc "Arguments list is empty"
invokestatic com.sun.tools.javac.util.Assert.check:(ZLjava/lang/String;)V
7: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 9
start local 9 8: aload 7
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 19
StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int com.sun.tools.javac.util.List java.util.Iterator com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
9: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
astore 10
start local 10 10: aload 10
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 12
start local 12 11: ldc ""
aload 12
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
goto 19
12: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int 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 10
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 15
13: aload 9
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
14: goto 16
15: StackMap locals:
StackMap stack:
aload 9
aload 0
aload 10
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
16: StackMap locals:
StackMap stack:
iload 6
ifeq 17
iload 3
ifeq 18
17: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.StringConcat$IndyPlain.gen:Lcom/sun/tools/javac/jvm/Gen;
aload 10
aload 10
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
18: StackMap locals:
StackMap stack:
iconst_0
istore 6
end local 12 end local 10 19: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int com.sun.tools.javac.util.List java.util.Iterator com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
20: aload 0
aload 4
aload 1
aload 9
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 9 end local 7 21: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
22: aload 5
invokevirtual com.sun.tools.javac.util.List.size:()I
iconst_1
if_icmple 30
23: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 7
start local 7 24: iconst_0
istore 8
start local 8 25: goto 28
26: StackMap locals: com.sun.tools.javac.jvm.StringConcat$IndyPlain com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int com.sun.tools.javac.util.ListBuffer int
StackMap stack:
aload 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.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
27: iinc 8 1
StackMap locals:
StackMap stack:
28: iload 8
aload 5
invokevirtual com.sun.tools.javac.util.List.size:()I
if_icmplt 26
end local 8 29: aload 0
aload 4
aload 1
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 30: StackMap locals:
StackMap stack:
return
end local 6 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 31 0 this Lcom/sun/tools/javac/jvm/StringConcat$IndyPlain;
0 31 1 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
0 31 2 args Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
0 31 3 generateFirstArg Z
0 31 4 type Lcom/sun/tools/javac/code/Type;
1 31 5 split Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;>;
2 31 6 first Z
4 21 7 t Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
8 21 9 dynamicArgs Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
10 19 10 arg Lcom/sun/tools/javac/tree/JCTree;
11 19 12 constVal Ljava/lang/Object;
24 30 7 argTypes Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
25 29 8 c I
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
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: aload 7
checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.asHandle:()Lcom/sun/tools/javac/code/Symbol$MethodHandleSymbol;
21: aload 4
22: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
iconst_0
anewarray com.sun.tools.javac.jvm.PoolConstant$LoadableConstant
invokevirtual com.sun.tools.javac.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.sun.tools.javac.jvm.PoolConstant$LoadableConstant[]
23: invokespecial com.sun.tools.javac.code.Symbol$DynamicMethodSymbol.<init>:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Symbol$MethodHandleSymbol;Lcom/sun/tools/javac/code/Type;[Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)V
astore 8
start local 8 24: 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 25: 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 26: goto 30
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
27: astore 10
28: 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
29: aload 10
athrow
30: 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
31: 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 32 0 this Lcom/sun/tools/javac/jvm/StringConcat$IndyPlain;
0 32 1 type Lcom/sun/tools/javac/code/Type;
0 32 2 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
0 32 3 dynamicArgTypes Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
5 32 4 indyType Lcom/sun/tools/javac/code/Type$MethodType;
6 32 5 prevPos I
11 26 6 bsm_staticArgs Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
18 26 7 bsm Lcom/sun/tools/javac/code/Symbol;
24 26 8 dynSym Lcom/sun/tools/javac/code/Symbol$DynamicMethodSymbol;
25 26 9 item Lcom/sun/tools/javac/jvm/Items$Item;
Exception table:
from to target type
6 27 27 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 MethodHandleSymbol = com.sun.tools.javac.code.Symbol$MethodHandleSymbol 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
public abstract LoadableConstant = com.sun.tools.javac.jvm.PoolConstant$LoadableConstant of com.sun.tools.javac.jvm.PoolConstant
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