final class com.oracle.truffle.api.nodes.NodeClassImpl extends com.oracle.truffle.api.nodes.NodeClass
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.nodes.NodeClassImpl
super_class: com.oracle.truffle.api.nodes.NodeClass
{
private static final com.oracle.truffle.api.nodes.NodeFieldAccessor[] EMPTY_NODE_FIELD_ARRAY;
descriptor: [Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.oracle.truffle.api.nodes.NodeFieldAccessor[] fields;
descriptor: [Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.nodes.NodeFieldAccessor parentField;
descriptor: Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Class<? extends com.oracle.truffle.api.nodes.Node> clazz;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
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/nodes/NodeClassImpl;
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.nodes.NodeClassImpl.$assertionsDisabled:Z
3: iconst_0
anewarray com.oracle.truffle.api.nodes.NodeFieldAccessor
putstatic com.oracle.truffle.api.nodes.NodeClassImpl.EMPTY_NODE_FIELD_ARRAY:[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.Class<? extends com.oracle.truffle.api.nodes.Node>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.oracle.truffle.api.nodes.NodeClass.<init>:(Ljava/lang/Class;)V
1: ldc Lcom/oracle/truffle/api/nodes/Node;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 3
2: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
3: StackMap locals: com.oracle.truffle.api.nodes.NodeClassImpl java.lang.Class
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 4: aconst_null
astore 3
start local 3 5: ldc Lcom/oracle/truffle/api/nodes/Node;
ldc "parent"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 4
start local 4 6: getstatic com.oracle.truffle.api.nodes.NodeClassImpl.$assertionsDisabled:Z
ifne 7
ldc Lcom/oracle/truffle/api/nodes/Node;
aload 4
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: java.util.List com.oracle.truffle.api.nodes.NodeFieldAccessor java.lang.reflect.Field
StackMap stack:
getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.PARENT:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
aload 4
invokestatic com.oracle.truffle.api.nodes.NodeFieldAccessor.create:(Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;Ljava/lang/reflect/Field;)Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
astore 3
end local 4 8: goto 11
StackMap locals: com.oracle.truffle.api.nodes.NodeClassImpl java.lang.Class java.util.List com.oracle.truffle.api.nodes.NodeFieldAccessor
StackMap stack: java.lang.NoSuchFieldException
9: astore 4
start local 4 10: new java.lang.AssertionError
dup
ldc "Node field not found"
aload 4
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 11: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.collectInstanceFields:(Ljava/lang/Class;Ljava/util/List;)V
12: aload 2
new com.oracle.truffle.api.nodes.NodeClassImpl$1
dup
aload 0
invokespecial com.oracle.truffle.api.nodes.NodeClassImpl$1.<init>:(Lcom/oracle/truffle/api/nodes/NodeClassImpl;)V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
13: aload 0
aload 2
getstatic com.oracle.truffle.api.nodes.NodeClassImpl.EMPTY_NODE_FIELD_ARRAY:[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor[]
putfield com.oracle.truffle.api.nodes.NodeClassImpl.fields:[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
14: aload 0
aload 3
putfield com.oracle.truffle.api.nodes.NodeClassImpl.parentField:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
15: aload 0
aload 1
putfield com.oracle.truffle.api.nodes.NodeClassImpl.clazz:Ljava/lang/Class;
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 17 1 clazz Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
4 17 2 fieldsList Ljava/util/List<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;
5 17 3 parentFieldTmp Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
6 8 4 field Ljava/lang/reflect/Field;
10 11 4 e Ljava/lang/NoSuchFieldException;
Exception table:
from to target type
5 8 9 Class java.lang.NoSuchFieldException
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;)V
MethodParameters:
Name Flags
clazz
private static void collectInstanceFields(java.lang.Class<? extends java.lang.Object>, java.util.List<com.oracle.truffle.api.nodes.NodeFieldAccessor>);
descriptor: (Ljava/lang/Class;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
ifnull 2
1: aload 0
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.collectInstanceFields:(Ljava/lang/Class;Ljava/util/List;)V
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
astore 2
start local 2 3: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 20
StackMap locals: java.lang.Class java.util.List java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 3
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifne 19
aload 3
invokevirtual java.lang.reflect.Field.isSynthetic:()Z
ifeq 7
6: goto 19
7: StackMap locals: java.lang.Class java.util.List java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[]
StackMap stack:
aload 3
invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
ldc Lcom/oracle/truffle/api/nodes/Node;
if_acmpne 9
aload 3
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
ldc "parent"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
aload 3
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
ldc "nodeClass"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
8: goto 19
9: StackMap locals:
StackMap stack:
aload 3
ldc Lcom/oracle/truffle/api/nodes/Node$Child;
invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 13
10: aload 3
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.checkChildField:(Ljava/lang/reflect/Field;)V
11: getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILD:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
aload 3
invokestatic com.oracle.truffle.api.nodes.NodeFieldAccessor.create:(Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;Ljava/lang/reflect/Field;)Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
astore 7
start local 7 12: goto 18
end local 7 StackMap locals:
StackMap stack:
13: aload 3
ldc Lcom/oracle/truffle/api/nodes/Node$Children;
invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 17
14: aload 3
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.checkChildrenField:(Ljava/lang/reflect/Field;)V
15: getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILDREN:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
aload 3
invokestatic com.oracle.truffle.api.nodes.NodeFieldAccessor.create:(Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;Ljava/lang/reflect/Field;)Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
astore 7
start local 7 16: goto 18
end local 7 17: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.DATA:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
aload 3
invokestatic com.oracle.truffle.api.nodes.NodeFieldAccessor.create:(Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;Ljava/lang/reflect/Field;)Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
astore 7
start local 7 18: StackMap locals: com.oracle.truffle.api.nodes.NodeFieldAccessor
StackMap stack:
aload 1
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 3 19: StackMap locals: java.lang.Class java.util.List java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
20: iload 4
iload 5
if_icmplt 4
21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 clazz Ljava/lang/Class<+Ljava/lang/Object;>;
0 22 1 fieldsList Ljava/util/List<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;
3 22 2 declaredFields [Ljava/lang/reflect/Field;
5 19 3 field Ljava/lang/reflect/Field;
12 13 7 nodeField Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
16 17 7 nodeField Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
18 19 7 nodeField Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
Signature: (Ljava/lang/Class<+Ljava/lang/Object;>;Ljava/util/List<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;)V
MethodParameters:
Name Flags
clazz
fieldsList
private static boolean isNodeType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Lcom/oracle/truffle/api/nodes/Node;
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 2
aload 0
invokevirtual java.lang.Class.isInterface:()Z
ifeq 1
ldc Lcom/oracle/truffle/api/nodes/NodeInterface;
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
private static void checkChildField(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.isNodeType:(Ljava/lang/Class;)Z
ifne 2
1: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "@Child field type must be a subclass of Node or an interface extending NodeInterface ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
ifeq 4
3: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "@Child field must not be final ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 field Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
field
private static void checkChildrenField(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 1
aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.isNodeType:(Ljava/lang/Class;)Z
ifne 2
1: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "@Children field type must be an array of a subclass of Node or an interface extending NodeInterface ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 field Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
field
public com.oracle.truffle.api.nodes.NodeFieldAccessor getParentField();
descriptor: ()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.nodes.NodeClassImpl.parentField:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.nodes.NodeClassImpl.clazz:Ljava/lang/Class;
invokevirtual java.lang.Object.hashCode:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.truffle.api.nodes.NodeClassImpl
ifeq 3
1: aload 1
checkcast com.oracle.truffle.api.nodes.NodeClassImpl
astore 2
start local 2 2: aload 0
getfield com.oracle.truffle.api.nodes.NodeClassImpl.clazz:Ljava/lang/Class;
aload 2
getfield com.oracle.truffle.api.nodes.NodeClassImpl.clazz:Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ireturn
end local 2 3: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 4 1 obj Ljava/lang/Object;
2 3 2 other Lcom/oracle/truffle/api/nodes/NodeClassImpl;
MethodParameters:
Name Flags
obj
public java.util.Iterator<com.oracle.truffle.api.nodes.Node> makeIterator(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.nodes.NodeClassImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.api.nodes.NodeClassImpl.clazz:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.nodes.NodeIterator
dup
aload 0
aload 1
aload 0
getfield com.oracle.truffle.api.nodes.NodeClassImpl.fields:[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
invokespecial com.oracle.truffle.api.nodes.NodeIterator.<init>:(Lcom/oracle/truffle/api/nodes/NodeClass;Lcom/oracle/truffle/api/nodes/Node;[Ljava/lang/Object;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 2 1 node Lcom/oracle/truffle/api/nodes/Node;
Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Iterator<Lcom/oracle/truffle/api/nodes/Node;>;
MethodParameters:
Name Flags
node
public java.lang.Class<? extends com.oracle.truffle.api.nodes.Node> getType();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.nodes.NodeClassImpl.clazz:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
protected java.lang.Iterable<com.oracle.truffle.api.nodes.NodeFieldAccessor> getNodeFields();
descriptor: ()Ljava/lang/Iterable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual com.oracle.truffle.api.nodes.NodeClassImpl.getNodeFields:(Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;)Ljava/lang/Iterable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
Signature: ()Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;
protected com.oracle.truffle.api.nodes.NodeFieldAccessor[] getNodeFieldArray();
descriptor: ()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.nodes.NodeClassImpl.fields:[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
private java.lang.Iterable<com.oracle.truffle.api.nodes.NodeFieldAccessor> getNodeFields(com.oracle.truffle.api.nodes.NodeClassImpl$NodeFieldFilter);
descriptor: (Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;)Ljava/lang/Iterable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.nodes.NodeClassImpl$2
dup
aload 0
aload 1
invokespecial com.oracle.truffle.api.nodes.NodeClassImpl$2.<init>:(Lcom/oracle/truffle/api/nodes/NodeClassImpl;Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 1 1 filter Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;
Signature: (Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;
MethodParameters:
Name Flags
filter final
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getFields();
descriptor: ()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClassImpl.getNodeFieldArray:()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getChildFields();
descriptor: ()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new com.oracle.truffle.api.nodes.NodeClassImpl$3
dup
aload 0
invokespecial com.oracle.truffle.api.nodes.NodeClassImpl$3.<init>:(Lcom/oracle/truffle/api/nodes/NodeClassImpl;)V
invokevirtual com.oracle.truffle.api.nodes.NodeClassImpl.getNodeFields:(Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;)Ljava/lang/Iterable;
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.iterableToArray:(Ljava/lang/Iterable;)[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getChildrenFields();
descriptor: ()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new com.oracle.truffle.api.nodes.NodeClassImpl$4
dup
aload 0
invokespecial com.oracle.truffle.api.nodes.NodeClassImpl$4.<init>:(Lcom/oracle/truffle/api/nodes/NodeClassImpl;)V
invokevirtual com.oracle.truffle.api.nodes.NodeClassImpl.getNodeFields:(Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;)Ljava/lang/Iterable;
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.iterableToArray:(Ljava/lang/Iterable;)[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getCloneableFields();
descriptor: ()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new com.oracle.truffle.api.nodes.NodeClassImpl$5
dup
aload 0
invokespecial com.oracle.truffle.api.nodes.NodeClassImpl$5.<init>:(Lcom/oracle/truffle/api/nodes/NodeClassImpl;)V
invokevirtual com.oracle.truffle.api.nodes.NodeClassImpl.getNodeFields:(Lcom/oracle/truffle/api/nodes/NodeClassImpl$NodeFieldFilter;)Ljava/lang/Iterable;
invokestatic com.oracle.truffle.api.nodes.NodeClassImpl.iterableToArray:(Ljava/lang/Iterable;)[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
private static com.oracle.truffle.api.nodes.NodeFieldAccessor[] iterableToArray(java.lang.Iterable<com.oracle.truffle.api.nodes.NodeFieldAccessor>);
descriptor: (Ljava/lang/Iterable;)[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: java.lang.Iterable java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
astore 2
start local 2 3: aload 1
aload 2
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
iconst_0
anewarray com.oracle.truffle.api.nodes.NodeFieldAccessor
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor[]
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 fields Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;
1 6 1 fieldList Ljava/util/ArrayList<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;
3 4 2 field Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
Signature: (Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;>;)[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
MethodParameters:
Name Flags
fields
protected void putFieldObject(java.lang.Object, com.oracle.truffle.api.nodes.Node, java.lang.Object);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.putObject:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 2 1 field Ljava/lang/Object;
0 2 2 receiver Lcom/oracle/truffle/api/nodes/Node;
0 2 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
field
receiver
value
protected java.lang.Object getFieldObject(java.lang.Object, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getObject:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 1 1 field Ljava/lang/Object;
0 1 2 receiver Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
field
receiver
protected java.lang.Object getFieldValue(java.lang.Object, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.loadValue:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 1 1 field Ljava/lang/Object;
0 1 2 receiver Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
field
receiver
protected java.lang.Class<?> getFieldType();
descriptor: (Ljava/lang/Object;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getType:()Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 1 1 field Ljava/lang/Object;
Signature: (Ljava/lang/Object;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
field
protected java.lang.String getFieldName(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getName:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 1 1 field Ljava/lang/Object;
MethodParameters:
Name Flags
field
protected boolean isChildField(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getKind:()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILD:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 2 1 field Ljava/lang/Object;
MethodParameters:
Name Flags
field
protected boolean isChildrenField(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getKind:()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILDREN:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 2 1 field Ljava/lang/Object;
MethodParameters:
Name Flags
field
protected boolean isCloneableField(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getKind:()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.DATA:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
if_acmpne 1
ldc Lcom/oracle/truffle/api/nodes/NodeCloneable;
aload 1
checkcast com.oracle.truffle.api.nodes.NodeFieldAccessor
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
0 2 1 field Ljava/lang/Object;
MethodParameters:
Name Flags
field
boolean nodeFieldsOrderedByKind();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/nodes/NodeClassImpl;
protected java.lang.Object[] getNodeFieldArray();
descriptor: ()[Ljava/lang/Object;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClassImpl.getNodeFieldArray:()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "NodeClassImpl.java"
NestMembers:
com.oracle.truffle.api.nodes.NodeClassImpl$1 com.oracle.truffle.api.nodes.NodeClassImpl$2 com.oracle.truffle.api.nodes.NodeClassImpl$2$1 com.oracle.truffle.api.nodes.NodeClassImpl$3 com.oracle.truffle.api.nodes.NodeClassImpl$4 com.oracle.truffle.api.nodes.NodeClassImpl$5 com.oracle.truffle.api.nodes.NodeClassImpl$NodeFieldFilter
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.NodeClassImpl$1
com.oracle.truffle.api.nodes.NodeClassImpl$2
com.oracle.truffle.api.nodes.NodeClassImpl$3
com.oracle.truffle.api.nodes.NodeClassImpl$4
com.oracle.truffle.api.nodes.NodeClassImpl$5
private abstract NodeFieldFilter = com.oracle.truffle.api.nodes.NodeClassImpl$NodeFieldFilter of com.oracle.truffle.api.nodes.NodeClassImpl
public final NodeFieldKind = com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind of com.oracle.truffle.api.nodes.NodeFieldAccessor