class com.oracle.truffle.api.dsl.test.TestHelper
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.dsl.test.TestHelper
super_class: java.lang.Object
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/dsl/test/TestHelper;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.api.dsl.test.TestHelper.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/dsl/test/TestHelper;
public static <T extends com.oracle.truffle.api.nodes.Node> T createRoot();
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.api.dsl.test.TestHelper$1
dup
aconst_null
aload 0
invokespecial com.oracle.truffle.api.dsl.test.TestHelper$1.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/nodes/Node;)V
1: invokevirtual com.oracle.truffle.api.dsl.test.TestHelper$1.adoptChildren:()V
2: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node TT;
Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(TT;)TT;
MethodParameters:
Name Flags
node final
private static com.oracle.truffle.api.dsl.test.TypeSystemTest$ArgumentNode[] arguments(int);
descriptor: (I)[Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ArgumentNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: iload 0
anewarray com.oracle.truffle.api.dsl.test.TypeSystemTest$ArgumentNode
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: com.oracle.truffle.api.dsl.test.TypeSystemTest$ArgumentNode[] int
StackMap stack:
aload 1
iload 2
new com.oracle.truffle.api.dsl.test.TypeSystemTest$ArgumentNode
dup
iload 2
invokespecial com.oracle.truffle.api.dsl.test.TypeSystemTest$ArgumentNode.<init>:(I)V
aastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 1
arraylength
if_icmplt 3
end local 2 6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 count I
1 7 1 nodes [Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ArgumentNode;
2 6 2 i I
MethodParameters:
Name Flags
count
static <E extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode> E createNode(com.oracle.truffle.api.dsl.NodeFactory<E>, boolean, []);
descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;Z[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface com.oracle.truffle.api.dsl.NodeFactory.getExecutionSignature:()Ljava/util/List;
invokeinterface java.util.List.size:()I
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.arguments:(I)[Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ArgumentNode;
astore 3
start local 3 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 2: iload 1
ifeq 4
3: aload 4
aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
4: StackMap locals: com.oracle.truffle.api.dsl.test.TypeSystemTest$ArgumentNode[] java.util.List
StackMap stack:
ldc Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ChildrenNode;
aload 0
invokeinterface com.oracle.truffle.api.dsl.NodeFactory.getNodeClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 7
5: aload 4
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: goto 8
7: StackMap locals:
StackMap stack:
aload 4
aload 3
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
8: StackMap locals:
StackMap stack:
iload 1
ifne 10
9: aload 4
aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
10: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 4
invokeinterface java.util.List.size:()I
anewarray java.lang.Object
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.dsl.NodeFactory.createNode:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 factory Lcom/oracle/truffle/api/dsl/NodeFactory<TE;>;
0 11 1 prefixConstants Z
0 11 2 constants [Ljava/lang/Object;
1 11 3 argumentNodes [Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ArgumentNode;
2 11 4 argumentList Ljava/util/List<Ljava/lang/Object;>;
Signature: <E:Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>(Lcom/oracle/truffle/api/dsl/NodeFactory<TE;>;Z[Ljava/lang/Object;)TE;
MethodParameters:
Name Flags
factory
prefixConstants
constants
static <E extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode> com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode<E> createRoot(com.oracle.truffle.api.dsl.NodeFactory<E>, []);
descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode
dup
aload 0
iconst_0
aload 1
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createNode:(Lcom/oracle/truffle/api/dsl/NodeFactory;Z[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
invokespecial com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;)V
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.adoptChildren:()V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 factory Lcom/oracle/truffle/api/dsl/NodeFactory<TE;>;
0 3 1 constants [Ljava/lang/Object;
1 3 2 rootNode Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<TE;>;
Signature: <E:Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>(Lcom/oracle/truffle/api/dsl/NodeFactory<TE;>;[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<TE;>;
MethodParameters:
Name Flags
factory
constants
static <E extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode> com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode<E> createRootPrefix(com.oracle.truffle.api.dsl.NodeFactory<E>, boolean, []);
descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;Z[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode
dup
aload 0
iload 1
aload 2
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createNode:(Lcom/oracle/truffle/api/dsl/NodeFactory;Z[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
invokespecial com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;)V
astore 3
start local 3 1: aload 3
invokevirtual com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.adoptChildren:()V
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 factory Lcom/oracle/truffle/api/dsl/NodeFactory<TE;>;
0 3 1 prefixConstants Z
0 3 2 constants [Ljava/lang/Object;
1 3 3 rootNode Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<TE;>;
Signature: <E:Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>(Lcom/oracle/truffle/api/dsl/NodeFactory<TE;>;Z[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<TE;>;
MethodParameters:
Name Flags
factory
prefixConstants
constants
static com.oracle.truffle.api.CallTarget createCallTarget(com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode);
descriptor: (Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;)Lcom/oracle/truffle/api/CallTarget;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode
dup
aload 0
invokespecial com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;)V
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;)Lcom/oracle/truffle/api/CallTarget;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 node Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
MethodParameters:
Name Flags
node
static com.oracle.truffle.api.CallTarget createCallTarget(com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode<? extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode>);
descriptor: (Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;)Lcom/oracle/truffle/api/CallTarget;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
aload 0
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 node Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;
Signature: (Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;)Lcom/oracle/truffle/api/CallTarget;
MethodParameters:
Name Flags
node
static com.oracle.truffle.api.RootCallTarget createCallTarget(com.oracle.truffle.api.dsl.NodeFactory<? extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode>, []);
descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;)Lcom/oracle/truffle/api/RootCallTarget;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
aload 0
aload 1
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createRoot:(Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 factory Lcom/oracle/truffle/api/dsl/NodeFactory<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;
0 1 1 constants [Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/dsl/NodeFactory<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;[Ljava/lang/Object;)Lcom/oracle/truffle/api/RootCallTarget;
MethodParameters:
Name Flags
factory
constants
static boolean assertionsEnabled();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: iconst_0
istore 0
start local 0 1: getstatic com.oracle.truffle.api.dsl.test.TestHelper.$assertionsDisabled:Z
ifne 2
iconst_1
dup
istore 0
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
iload 0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 assertOn Z
static <T extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode> T getNode(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
checkcast com.oracle.truffle.api.RootCallTarget
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
checkcast com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode
invokevirtual com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.getNode:()Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Lcom/oracle/truffle/api/CallTarget;
Signature: <T:Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>(Lcom/oracle/truffle/api/CallTarget;)TT;
MethodParameters:
Name Flags
target
static <E> executeWith(com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode<? extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode>, []);
descriptor: (Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
aload 1
aload 0
invokevirtual com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
invokeinterface com.oracle.truffle.api.TruffleRuntime.createVirtualFrame:([Ljava/lang/Object;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/api/frame/VirtualFrame;
invokevirtual com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 node Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;
0 1 1 values [Ljava/lang/Object;
Signature: <E:Ljava/lang/Object;>(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;[Ljava/lang/Object;)Ljava/lang/Object;
MethodParameters:
Name Flags
node
values
static java.lang.Object[] array(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 val [Ljava/lang/Object;
MethodParameters:
Name Flags
val
static <E> java.util.List<java.util.List<E>> permutations(java.util.List<E>);
descriptor: (Ljava/util/List;)Ljava/util/List;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.permutations:(Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 list Ljava/util/List<TE;>;
Signature: <E:Ljava/lang/Object;>(Ljava/util/List<TE;>;)Ljava/util/List<Ljava/util/List<TE;>;>;
MethodParameters:
Name Flags
list
static java.lang.Object[][] permutations(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)[[Ljava/lang/Object;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.permutations:(Ljava/util/List;)Ljava/util/List;
astore 1
start local 1 1: aload 1
invokeinterface java.util.List.size:()I
anewarray java.lang.Object[]
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: java.lang.Object[] java.util.List java.lang.Object[][] int top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 5: aload 2
iload 3
aload 4
aload 4
invokeinterface java.util.List.size:()I
anewarray java.lang.Object
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
aastore
6: iinc 3 1
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 list [Ljava/lang/Object;
1 9 1 permutations Ljava/util/List<Ljava/util/List<Ljava/lang/Object;>;>;
2 9 2 a [[Ljava/lang/Object;
3 9 3 index I
5 7 4 p Ljava/util/List<Ljava/lang/Object;>;
MethodParameters:
Name Flags
list
static <E> java.util.List<java.util.List<E>> permutations(java.util.List<E>, java.util.List<E>, java.util.List<java.util.List<E>>);
descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/util/List;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 5
1: new java.util.ArrayList
dup
aload 0
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 3
start local 3 2: aload 3
aload 1
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
3: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 2
areturn
end local 3 5: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 6: goto 13
7: StackMap locals: int
StackMap stack:
new java.util.ArrayList
dup
aload 0
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 8: aload 4
aload 1
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: new java.util.ArrayList
dup
aload 1
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 5
start local 5 10: aload 5
iload 3
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
11: aload 4
aload 5
aload 2
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.permutations:(Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/util/List;
pop
end local 5 end local 4 12: iinc 3 1
StackMap locals:
StackMap stack:
13: iload 3
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 7
end local 3 14: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 prefix Ljava/util/List<TE;>;
0 15 1 suffix Ljava/util/List<TE;>;
0 15 2 output Ljava/util/List<Ljava/util/List<TE;>;>;
2 5 3 newElement Ljava/util/ArrayList<TE;>;
6 14 3 i I
8 12 4 newPrefix Ljava/util/List<TE;>;
10 12 5 newSuffix Ljava/util/List<TE;>;
Signature: <E:Ljava/lang/Object;>(Ljava/util/List<TE;>;Ljava/util/List<TE;>;Ljava/util/List<Ljava/util/List<TE;>;>;)Ljava/util/List<Ljava/util/List<TE;>;>;
MethodParameters:
Name Flags
prefix
suffix
output
static void assertRuns(com.oracle.truffle.api.dsl.NodeFactory<? extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode>, [], []);
descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;[Ljava/lang/Object;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.assertRuns:(Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 factory Lcom/oracle/truffle/api/dsl/NodeFactory<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;
0 2 1 testValues [Ljava/lang/Object;
0 2 2 result [Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/dsl/NodeFactory<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;[Ljava/lang/Object;[Ljava/lang/Object;)V
MethodParameters:
Name Flags
factory
testValues
result
static void assertRuns(com.oracle.truffle.api.dsl.NodeFactory<? extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode>, [], [], com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener);
descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createRoot:(Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;
iconst_0
aload 1
iload 4
aaload
aload 2
iload 4
aaload
aload 3
iconst_1
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.assertValue:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;Z)V
3: iinc 4 1
StackMap locals:
StackMap stack:
4: iload 4
aload 1
arraylength
if_icmplt 2
end local 4 5: aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 4
start local 4 6: aload 4
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.permutations:(Ljava/util/List;)Ljava/util/List;
astore 5
start local 5 7: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 18
StackMap locals: com.oracle.truffle.api.dsl.NodeFactory java.lang.Object[] java.lang.Object[] com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener java.util.List java.util.List top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 6
start local 6 9: aload 0
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createRoot:(Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;
astore 8
start local 8 10: iconst_0
istore 9
start local 9 11: aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 17
StackMap locals: com.oracle.truffle.api.dsl.NodeFactory java.lang.Object[] java.lang.Object[] com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener java.util.List java.util.List java.util.List java.util.Iterator com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode int top java.util.Iterator
StackMap stack:
12: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 10
start local 10 13: aload 8
iload 9
aload 10
aload 2
aload 4
aload 10
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
aaload
aload 3
iload 9
aload 6
invokeinterface java.util.List.size:()I
iconst_1
isub
if_icmpne 14
iconst_1
goto 15
StackMap locals: com.oracle.truffle.api.dsl.NodeFactory java.lang.Object[] java.lang.Object[] com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener java.util.List java.util.List java.util.List java.util.Iterator com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode int java.lang.Object java.util.Iterator
StackMap stack: com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode int java.lang.Object java.lang.Object com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener
14: iconst_0
StackMap locals: com.oracle.truffle.api.dsl.NodeFactory java.lang.Object[] java.lang.Object[] com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener java.util.List java.util.List java.util.List java.util.Iterator com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode int java.lang.Object java.util.Iterator
StackMap stack: com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode int java.lang.Object java.lang.Object com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener int
15: invokestatic com.oracle.truffle.api.dsl.test.TestHelper.assertValue:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;Z)V
16: iinc 9 1
end local 10 17: StackMap locals: com.oracle.truffle.api.dsl.NodeFactory java.lang.Object[] java.lang.Object[] com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener java.util.List java.util.List java.util.List java.util.Iterator com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode int top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
end local 9 end local 8 end local 6 18: StackMap locals: com.oracle.truffle.api.dsl.NodeFactory java.lang.Object[] java.lang.Object[] com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
19: 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 20 0 factory Lcom/oracle/truffle/api/dsl/NodeFactory<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;
0 20 1 testValues [Ljava/lang/Object;
0 20 2 result [Ljava/lang/Object;
0 20 3 listener Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;
1 5 4 i I
6 20 4 testValuesList Ljava/util/List<Ljava/lang/Object;>;
7 20 5 permuts Ljava/util/List<Ljava/util/List<Ljava/lang/Object;>;>;
9 18 6 list Ljava/util/List<Ljava/lang/Object;>;
10 18 8 root Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<*>;
11 18 9 index I
13 17 10 object Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/dsl/NodeFactory<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;[Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;)V
MethodParameters:
Name Flags
factory
testValues
result
listener
static void assertValue(com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode<? extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode>, int, , , com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener, );
descriptor: (Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;Z)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aconst_null
astore 6
start local 6 1: aload 3
instanceof java.lang.Class
ifeq 14
ldc Ljava/lang/Throwable;
aload 3
checkcast java.lang.Class
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 14
2: aload 2
instanceof java.lang.Object[]
ifeq 5
3: aload 0
aload 2
checkcast java.lang.Object[]
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.executeWith:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;[Ljava/lang/Object;)Ljava/lang/Object;
astore 6
4: goto 6
5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.executeWith:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;[Ljava/lang/Object;)Ljava/lang/Object;
astore 6
6: StackMap locals:
StackMap stack:
ldc "Exception %s expected but not occurred."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
7: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 7
start local 7 9: aload 7
astore 6
10: aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 3
checkcast java.lang.Class
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 20
11: aload 7
invokevirtual java.lang.Throwable.printStackTrace:()V
12: ldc "Incompatible exception class thrown. Expected %s but was %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
end local 7 13: goto 20
StackMap locals:
StackMap stack:
14: aload 2
instanceof java.lang.Object[]
ifeq 18
15: aload 0
aload 2
checkcast java.lang.Object[]
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.executeWith:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;[Ljava/lang/Object;)Ljava/lang/Object;
astore 6
16: aload 3
aload 6
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
17: goto 20
18: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.executeWith:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;[Ljava/lang/Object;)Ljava/lang/Object;
astore 6
19: aload 3
aload 6
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
aload 4
ifnull 22
21: aload 4
aload 0
iload 1
aload 2
aload 3
aload 6
iload 5
invokeinterface com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener.afterExecution:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Z)V
22: 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 23 0 root Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;
0 23 1 index I
0 23 2 value Ljava/lang/Object;
0 23 3 result Ljava/lang/Object;
0 23 4 listener Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;
0 23 5 last Z
1 23 6 actualResult Ljava/lang/Object;
9 13 7 e Ljava/lang/Throwable;
Exception table:
from to target type
2 7 8 Class java.lang.Throwable
Signature: (Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<+Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/dsl/test/TestHelper$TestExecutionListener;Z)V
MethodParameters:
Name Flags
root
index
value
result
listener
last
static int getSlowPathCount(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
instanceof com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Not instrumented. Instrument with instrumentSlowPath"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
checkcast com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot
invokevirtual com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot.getSlowPathCount:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
static void instrumentSlowPath(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Node already adopted."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot
dup
aload 0
invokespecial com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot.<init>:(Lcom/oracle/truffle/api/nodes/Node;)V
astore 1
start local 1 3: aload 1
invokevirtual com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot.adoptChildren:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 node Lcom/oracle/truffle/api/nodes/Node;
3 5 1 rootNode Lcom/oracle/truffle/api/dsl/test/TestHelper$SlowPathCounterRoot;
MethodParameters:
Name Flags
node
}
SourceFile: "TestHelper.java"
NestMembers:
com.oracle.truffle.api.dsl.test.TestHelper$1 com.oracle.truffle.api.dsl.test.TestHelper$LogListener com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot$1 com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener
InnerClasses:
com.oracle.truffle.api.dsl.test.TestHelper$1
public final LogListener = com.oracle.truffle.api.dsl.test.TestHelper$LogListener of com.oracle.truffle.api.dsl.test.TestHelper
SlowPathCounterRoot = com.oracle.truffle.api.dsl.test.TestHelper$SlowPathCounterRoot of com.oracle.truffle.api.dsl.test.TestHelper
abstract TestExecutionListener = com.oracle.truffle.api.dsl.test.TestHelper$TestExecutionListener of com.oracle.truffle.api.dsl.test.TestHelper
public ArgumentNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$ArgumentNode of com.oracle.truffle.api.dsl.test.TypeSystemTest
public abstract ChildrenNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$ChildrenNode of com.oracle.truffle.api.dsl.test.TypeSystemTest
public TestRootNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode of com.oracle.truffle.api.dsl.test.TypeSystemTest
public ValueNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode of com.oracle.truffle.api.dsl.test.TypeSystemTest