public class com.oracle.truffle.api.test.InterfaceChildFieldTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.InterfaceChildFieldTest
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.truffle.api.test.InterfaceChildFieldTest this
0: .line 61
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.api.test.InterfaceChildFieldTest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;
public void testChild();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=1
start local 0 // com.oracle.truffle.api.test.InterfaceChildFieldTest this
0: .line 65
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
astore 1 /* runtime */
start local 1 // com.oracle.truffle.api.TruffleRuntime runtime
1: .line 66
new com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode.<init>:(Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;)V
astore 2 /* leftChild */
start local 2 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface leftChild
2: .line 67
new com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode.<init>:(Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;)V
astore 3 /* rightChild */
start local 3 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface rightChild
3: .line 68
new com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildNode
dup
aload 0 /* this */
aload 2 /* leftChild */
aload 3 /* rightChild */
invokespecial com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildNode.<init>:(Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;)V
astore 4 /* parent */
start local 4 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildNode parent
4: .line 69
new com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode
dup
aload 0 /* this */
aload 4 /* parent */
invokespecial com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;)V
astore 5 /* rootNode */
start local 5 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode rootNode
5: .line 70
aload 1 /* runtime */
aload 5 /* rootNode */
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 6 /* target */
start local 6 // com.oracle.truffle.api.CallTarget target
6: .line 71
aload 4 /* parent */
invokevirtual com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildNode.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 7 /* iterator */
start local 7 // java.util.Iterator iterator
7: .line 72
aload 2 /* leftChild */
aload 7 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
8: .line 73
aload 3 /* rightChild */
aload 7 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: .line 74
aload 7 /* iterator */
invokeinterface java.util.Iterator.hasNext:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
10: .line 75
aload 6 /* target */
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 8 /* result */
start local 8 // java.lang.Object result
11: .line 76
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 8 /* result */
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: .line 78
ldc 4
aload 5 /* rootNode */
invokestatic com.oracle.truffle.api.nodes.NodeUtil.countNodes:(Lcom/oracle/truffle/api/nodes/Node;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
13: .line 79
ldc 4
aload 5 /* rootNode */
invokestatic com.oracle.truffle.api.nodes.NodeUtil.cloneNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
invokestatic com.oracle.truffle.api.nodes.NodeUtil.countNodes:(Lcom/oracle/truffle/api/nodes/Node;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
14: .line 80
return
end local 8 // java.lang.Object result
end local 7 // java.util.Iterator iterator
end local 6 // com.oracle.truffle.api.CallTarget target
end local 5 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode rootNode
end local 4 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildNode parent
end local 3 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface rightChild
end local 2 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface leftChild
end local 1 // com.oracle.truffle.api.TruffleRuntime runtime
end local 0 // com.oracle.truffle.api.test.InterfaceChildFieldTest this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;
1 15 1 runtime Lcom/oracle/truffle/api/TruffleRuntime;
2 15 2 leftChild Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;
3 15 3 rightChild Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;
4 15 4 parent Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildNode;
5 15 5 rootNode Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestRootNode;
6 15 6 target Lcom/oracle/truffle/api/CallTarget;
7 15 7 iterator Ljava/util/Iterator<Lcom/oracle/truffle/api/nodes/Node;>;
11 15 8 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testChildren();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 // com.oracle.truffle.api.test.InterfaceChildFieldTest this
0: .line 84
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
astore 1 /* runtime */
start local 1 // com.oracle.truffle.api.TruffleRuntime runtime
1: .line 85
iconst_5
anewarray com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface
astore 2 /* children */
start local 2 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface[] children
2: .line 86
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 87
StackMap locals: com.oracle.truffle.api.TruffleRuntime com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface[] int
StackMap stack:
aload 2 /* children */
iload 3 /* i */
new com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode.<init>:(Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;)V
aastore
5: .line 86
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
aload 2 /* children */
arraylength
if_icmplt 4
end local 3 // int i
7: .line 89
new com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode
dup
aload 0 /* this */
aload 2 /* children */
invokespecial com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode.<init>:(Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;[Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;)V
astore 3 /* parent */
start local 3 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode parent
8: .line 90
new com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode
dup
aload 0 /* this */
aload 3 /* parent */
invokespecial com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;)V
astore 4 /* rootNode */
start local 4 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode rootNode
9: .line 91
aload 1 /* runtime */
aload 4 /* rootNode */
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 5 /* target */
start local 5 // com.oracle.truffle.api.CallTarget target
10: .line 92
aload 3 /* parent */
invokevirtual com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6 /* iterator */
start local 6 // java.util.Iterator iterator
11: .line 93
iconst_0
istore 7 /* i */
start local 7 // int i
12: goto 15
13: .line 94
StackMap locals: com.oracle.truffle.api.test.InterfaceChildFieldTest com.oracle.truffle.api.TruffleRuntime com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface[] com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode com.oracle.truffle.api.CallTarget java.util.Iterator int
StackMap stack:
aload 2 /* children */
iload 7 /* i */
aaload
aload 6 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: .line 93
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 7 /* i */
aload 2 /* children */
arraylength
if_icmplt 13
end local 7 // int i
16: .line 96
aload 6 /* iterator */
invokeinterface java.util.Iterator.hasNext:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
17: .line 97
aload 5 /* target */
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 7 /* result */
start local 7 // java.lang.Object result
18: .line 98
bipush 105
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7 /* result */
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: .line 100
iconst_2
aload 2 /* children */
arraylength
iadd
i2l
aload 4 /* rootNode */
invokestatic com.oracle.truffle.api.nodes.NodeUtil.countNodes:(Lcom/oracle/truffle/api/nodes/Node;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
20: .line 101
iconst_2
aload 2 /* children */
arraylength
iadd
i2l
aload 4 /* rootNode */
invokestatic com.oracle.truffle.api.nodes.NodeUtil.cloneNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
invokestatic com.oracle.truffle.api.nodes.NodeUtil.countNodes:(Lcom/oracle/truffle/api/nodes/Node;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
21: .line 102
return
end local 7 // java.lang.Object result
end local 6 // java.util.Iterator iterator
end local 5 // com.oracle.truffle.api.CallTarget target
end local 4 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode rootNode
end local 3 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode parent
end local 2 // com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface[] children
end local 1 // com.oracle.truffle.api.TruffleRuntime runtime
end local 0 // com.oracle.truffle.api.test.InterfaceChildFieldTest this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/api/test/InterfaceChildFieldTest;
1 22 1 runtime Lcom/oracle/truffle/api/TruffleRuntime;
2 22 2 children [Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildInterface;
3 7 3 i I
8 22 3 parent Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestChildrenNode;
9 22 4 rootNode Lcom/oracle/truffle/api/test/InterfaceChildFieldTest$TestRootNode;
10 22 5 target Lcom/oracle/truffle/api/CallTarget;
11 22 6 iterator Ljava/util/Iterator<Lcom/oracle/truffle/api/nodes/Node;>;
12 16 7 i I
18 22 7 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "InterfaceChildFieldTest.java"
NestMembers:
com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildNode com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeaf2Node com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode
InnerClasses:
abstract TestChildInterface = com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildInterface of com.oracle.truffle.api.test.InterfaceChildFieldTest
TestChildNode = com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildNode of com.oracle.truffle.api.test.InterfaceChildFieldTest
TestChildrenNode = com.oracle.truffle.api.test.InterfaceChildFieldTest$TestChildrenNode of com.oracle.truffle.api.test.InterfaceChildFieldTest
TestLeaf2Node = com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeaf2Node of com.oracle.truffle.api.test.InterfaceChildFieldTest
TestLeafNode = com.oracle.truffle.api.test.InterfaceChildFieldTest$TestLeafNode of com.oracle.truffle.api.test.InterfaceChildFieldTest
TestRootNode = com.oracle.truffle.api.test.InterfaceChildFieldTest$TestRootNode of com.oracle.truffle.api.test.InterfaceChildFieldTest