public final class com.oracle.truffle.api.object.Shape$DerivedBuilder extends com.oracle.truffle.api.object.Shape$AbstractBuilder<com.oracle.truffle.api.object.Shape$DerivedBuilder>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.object.Shape$DerivedBuilder
super_class: com.oracle.truffle.api.object.Shape$AbstractBuilder
{
private final com.oracle.truffle.api.object.Shape baseShape;
descriptor: Lcom/oracle/truffle/api/object/Shape;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Object dynamicType;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private int shapeFlags;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private org.graalvm.collections.EconomicMap<java.lang.Object, com.oracle.truffle.api.object.Property> properties;
descriptor: Lorg/graalvm/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/graalvm/collections/EconomicMap<Ljava/lang/Object;Lcom/oracle/truffle/api/object/Property;>;
void <init>(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.truffle.api.object.Shape$AbstractBuilder.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.api.object.Shape$DerivedBuilder.baseShape:Lcom/oracle/truffle/api/object/Shape;
2: aload 0
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getDynamicType:()Ljava/lang/Object;
putfield com.oracle.truffle.api.object.Shape$DerivedBuilder.dynamicType:Ljava/lang/Object;
3: aload 0
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getFlags:()I
putfield com.oracle.truffle.api.object.Shape$DerivedBuilder.shapeFlags:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
0 5 1 baseShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
baseShape
public com.oracle.truffle.api.object.Shape$DerivedBuilder dynamicType(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
aload 1
invokestatic com.oracle.truffle.api.object.Shape$DerivedBuilder.checkDynamicType:(Ljava/lang/Object;)Ljava/lang/Object;
putfield com.oracle.truffle.api.object.Shape$DerivedBuilder.dynamicType:Ljava/lang/Object;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
0 3 1 dynamicType Ljava/lang/Object;
MethodParameters:
Name Flags
dynamicType
public com.oracle.truffle.api.object.Shape$DerivedBuilder shapeFlags(int);
descriptor: (I)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
iload 1
invokestatic com.oracle.truffle.api.object.Shape$DerivedBuilder.checkShapeFlags:(I)I
putfield com.oracle.truffle.api.object.Shape$DerivedBuilder.shapeFlags:I
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
0 3 1 flags I
MethodParameters:
Name Flags
flags
public com.oracle.truffle.api.object.Shape$DerivedBuilder addConstantProperty(java.lang.Object, java.lang.Object, int);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 1
ldc "key"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.properties:Lorg/graalvm/collections/EconomicMap;
ifnonnull 4
3: aload 0
getstatic org.graalvm.collections.Equivalence.DEFAULT:Lorg/graalvm/collections/Equivalence;
invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicMap;
putfield com.oracle.truffle.api.object.Shape$DerivedBuilder.properties:Lorg/graalvm/collections/EconomicMap;
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.baseShape:Lcom/oracle/truffle/api/object/Shape;
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
ifnonnull 5
aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.properties:Lorg/graalvm/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
ifeq 6
5: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Property already exists: %s."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.baseShape:Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.api.object.Shape.allocator:()Lcom/oracle/truffle/api/object/Shape$Allocator;
aload 2
invokevirtual com.oracle.truffle.api.object.Shape$Allocator.constantLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Location;
astore 4
start local 4 7: aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.properties:Lorg/graalvm/collections/EconomicMap;
aload 1
aload 1
aload 4
iload 3
invokestatic com.oracle.truffle.api.object.Property.create:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Location;I)Lcom/oracle/truffle/api/object/Property;
invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 0
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
0 9 1 key Ljava/lang/Object;
0 9 2 value Ljava/lang/Object;
0 9 3 flags I
7 9 4 location Lcom/oracle/truffle/api/object/Location;
MethodParameters:
Name Flags
key
value
flags
public com.oracle.truffle.api.object.Shape build();
descriptor: ()Lcom/oracle/truffle/api/object/Shape;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.baseShape:Lcom/oracle/truffle/api/object/Shape;
astore 1
start local 1 2: aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.dynamicType:Ljava/lang/Object;
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getDynamicType:()Ljava/lang/Object;
if_acmpeq 4
3: aload 1
aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.dynamicType:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.object.Shape.setDynamicType:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Shape;
astore 1
4: StackMap locals: com.oracle.truffle.api.object.Shape
StackMap stack:
aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.shapeFlags:I
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getFlags:()I
if_icmpeq 6
5: aload 1
aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.shapeFlags:I
invokevirtual com.oracle.truffle.api.object.Shape.setFlags:(I)Lcom/oracle/truffle/api/object/Shape;
astore 1
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.properties:Lorg/graalvm/collections/EconomicMap;
ifnull 11
7: aload 0
getfield com.oracle.truffle.api.object.Shape$DerivedBuilder.properties:Lorg/graalvm/collections/EconomicMap;
invokeinterface org.graalvm.collections.EconomicMap.getValues:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: com.oracle.truffle.api.object.Shape$DerivedBuilder com.oracle.truffle.api.object.Shape top java.util.Iterator
StackMap stack:
8: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 2
start local 2 9: aload 1
aload 2
invokevirtual com.oracle.truffle.api.object.Shape.addProperty:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/api/object/Shape;
astore 1
end local 2 10: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: StackMap locals: com.oracle.truffle.api.object.Shape$DerivedBuilder com.oracle.truffle.api.object.Shape
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
2 12 1 derivedShape Lcom/oracle/truffle/api/object/Shape;
9 10 2 property Lcom/oracle/truffle/api/object/Property;
public com.oracle.truffle.api.object.Shape$AbstractBuilder shapeFlags(int);
descriptor: (I)Lcom/oracle/truffle/api/object/Shape$AbstractBuilder;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.shapeFlags:(I)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape$AbstractBuilder addConstantProperty(java.lang.Object, java.lang.Object, int);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/api/object/Shape$AbstractBuilder;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
iload 3
invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.addConstantProperty:(Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape$AbstractBuilder dynamicType(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Shape$AbstractBuilder;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.dynamicType:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lcom/oracle/truffle/api/object/Shape$AbstractBuilder<Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;>;
SourceFile: "Shape.java"
NestHost: com.oracle.truffle.api.object.Shape
InnerClasses:
abstract AbstractBuilder = com.oracle.truffle.api.object.Shape$AbstractBuilder of com.oracle.truffle.api.object.Shape
public abstract Allocator = com.oracle.truffle.api.object.Shape$Allocator of com.oracle.truffle.api.object.Shape
public final DerivedBuilder = com.oracle.truffle.api.object.Shape$DerivedBuilder of com.oracle.truffle.api.object.Shape