final class com.oracle.truffle.object.DefaultLayout$LayoutInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.object.DefaultLayout$LayoutInfo
  super_class: java.lang.Object
{
  final com.oracle.truffle.object.CoreLocations$ObjectLocation[] objectFields;
    descriptor: [Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.object.CoreLocations$LongLocation[] primitiveFields;
    descriptor: [Lcom/oracle/truffle/object/CoreLocations$LongLocation;
    flags: (0x0010) ACC_FINAL

  private static final java.util.concurrent.ConcurrentMap<java.lang.Class<? extends com.oracle.truffle.api.object.DynamicObject>, com.oracle.truffle.object.DefaultLayout$LayoutInfo> LAYOUT_INFO_MAP;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;>;

  private static final sun.misc.Unsafe UNSAFE;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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=2, locals=0, args_size=0
         0: .line 224
            ldc Lcom/oracle/truffle/object/DefaultLayout;
            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.object.DefaultLayout$LayoutInfo.$assertionsDisabled:Z
         3: .line 228
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.LAYOUT_INFO_MAP:Ljava/util/concurrent/ConcurrentMap;
         4: .line 229
            invokestatic com.oracle.truffle.object.CoreLocations.getUnsafe:()Lsun/misc/Unsafe;
            putstatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.UNSAFE:Lsun/misc/Unsafe;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static com.oracle.truffle.object.DefaultLayout$LayoutInfo getOrCreateLayoutInfo(java.lang.Class<? extends com.oracle.truffle.api.object.DynamicObject>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Class dynamicObjectClass
         0: .line 232
            getstatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.LAYOUT_INFO_MAP:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* dynamicObjectClass */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.object.DefaultLayout$LayoutInfo
            astore 1 /* layoutInfo */
        start local 1 // com.oracle.truffle.object.DefaultLayout$LayoutInfo layoutInfo
         1: .line 233
            aload 1 /* layoutInfo */
            ifnull 3
         2: .line 234
            aload 1 /* layoutInfo */
            areturn
         3: .line 237
      StackMap locals: com.oracle.truffle.object.DefaultLayout$LayoutInfo
      StackMap stack:
            invokestatic org.graalvm.nativeimage.ImageInfo.inImageRuntimeCode:()Z
            ifeq 5
         4: .line 238
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Layout not initialized ahead-of-time: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* dynamicObjectClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* dynamicObjectClass */
            invokestatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.createLayoutInfo:(Ljava/lang/Class;)Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
            areturn
        end local 1 // com.oracle.truffle.object.DefaultLayout$LayoutInfo layoutInfo
        end local 0 // java.lang.Class dynamicObjectClass
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0  dynamicObjectClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
            1    6     1          layoutInfo  Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;)Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
    MethodParameters:
                    Name  Flags
      dynamicObjectClass  

  private static com.oracle.truffle.object.DefaultLayout$LayoutInfo createLayoutInfo(java.lang.Class<? extends com.oracle.truffle.api.object.DynamicObject>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // java.lang.Class dynamicObjectClass
         0: .line 245
            aload 0 /* dynamicObjectClass */
            ldc Lcom/oracle/truffle/api/object/DynamicObject;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 1 /* subclass */
        start local 1 // java.lang.Class subclass
         1: .line 246
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* objectFieldList */
        start local 2 // java.util.List objectFieldList
         2: .line 247
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* longFieldList */
        start local 3 // java.util.List longFieldList
         3: .line 248
            aload 1 /* subclass */
            aload 2 /* objectFieldList */
            aload 3 /* longFieldList */
            invokestatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.collectFields:(Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)Ljava/lang/Class;
            astore 4 /* superclass */
        start local 4 // java.lang.Class superclass
         4: .line 250
            aload 2 /* objectFieldList */
            invokeinterface java.util.List.size:()I
            aload 3 /* longFieldList */
            invokeinterface java.util.List.size:()I
            iadd
            sipush 1000
            if_icmple 6
         5: .line 251
            new java.lang.IllegalArgumentException
            dup
            ldc "Too many @DynamicField annotated fields."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 255
      StackMap locals: java.lang.Class java.lang.Class java.util.List java.util.List java.lang.Class
      StackMap stack:
            aload 4 /* superclass */
            aload 1 /* subclass */
            if_acmpeq 9
         7: .line 257
            aload 4 /* superclass */
            invokestatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.getOrCreateLayoutInfo:(Ljava/lang/Class;)Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
            astore 5 /* newLayoutInfo */
        start local 5 // com.oracle.truffle.object.DefaultLayout$LayoutInfo newLayoutInfo
         8: .line 258
            goto 10
        end local 5 // com.oracle.truffle.object.DefaultLayout$LayoutInfo newLayoutInfo
         9: .line 259
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.object.DefaultLayout$LayoutInfo
            dup
            aload 2 /* objectFieldList */
            aload 3 /* longFieldList */
            invokespecial com.oracle.truffle.object.DefaultLayout$LayoutInfo.<init>:(Ljava/util/List;Ljava/util/List;)V
            astore 5 /* newLayoutInfo */
        start local 5 // com.oracle.truffle.object.DefaultLayout$LayoutInfo newLayoutInfo
        10: .line 261
      StackMap locals: com.oracle.truffle.object.DefaultLayout$LayoutInfo
      StackMap stack:
            getstatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.LAYOUT_INFO_MAP:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* dynamicObjectClass */
            aload 5 /* newLayoutInfo */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.object.DefaultLayout$LayoutInfo
            astore 6 /* layoutInfo */
        start local 6 // com.oracle.truffle.object.DefaultLayout$LayoutInfo layoutInfo
        11: .line 262
            aload 6 /* layoutInfo */
            ifnonnull 12
            aload 5 /* newLayoutInfo */
            goto 13
      StackMap locals: com.oracle.truffle.object.DefaultLayout$LayoutInfo
      StackMap stack:
        12: aload 6 /* layoutInfo */
      StackMap locals:
      StackMap stack: com.oracle.truffle.object.DefaultLayout$LayoutInfo
        13: areturn
        end local 6 // com.oracle.truffle.object.DefaultLayout$LayoutInfo layoutInfo
        end local 5 // com.oracle.truffle.object.DefaultLayout$LayoutInfo newLayoutInfo
        end local 4 // java.lang.Class superclass
        end local 3 // java.util.List longFieldList
        end local 2 // java.util.List objectFieldList
        end local 1 // java.lang.Class subclass
        end local 0 // java.lang.Class dynamicObjectClass
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0  dynamicObjectClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
            1   14     1            subclass  Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
            2   14     2     objectFieldList  Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;>;
            3   14     3       longFieldList  Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$LongLocation;>;
            4   14     4          superclass  Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
            8    9     5       newLayoutInfo  Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
           10   14     5       newLayoutInfo  Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
           11   14     6          layoutInfo  Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;)Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
    MethodParameters:
                    Name  Flags
      dynamicObjectClass  

  private void <init>(java.util.List<com.oracle.truffle.object.CoreLocations$ObjectLocation>, java.util.List<com.oracle.truffle.object.CoreLocations$LongLocation>);
    descriptor: (Ljava/util/List;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.DefaultLayout$LayoutInfo this
        start local 1 // java.util.List objectFieldList
        start local 2 // java.util.List longFieldList
         0: .line 265
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 266
            aload 0 /* this */
            aload 1 /* objectFieldList */
            getstatic com.oracle.truffle.object.DefaultLayout.NO_OBJECT_FIELDS:[Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.object.CoreLocations$ObjectLocation[]
            putfield com.oracle.truffle.object.DefaultLayout$LayoutInfo.objectFields:[Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;
         2: .line 267
            aload 0 /* this */
            aload 2 /* longFieldList */
            getstatic com.oracle.truffle.object.DefaultLayout.NO_LONG_FIELDS:[Lcom/oracle/truffle/object/CoreLocations$LongLocation;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.object.CoreLocations$LongLocation[]
            putfield com.oracle.truffle.object.DefaultLayout$LayoutInfo.primitiveFields:[Lcom/oracle/truffle/object/CoreLocations$LongLocation;
         3: .line 268
            return
        end local 2 // java.util.List longFieldList
        end local 1 // java.util.List objectFieldList
        end local 0 // com.oracle.truffle.object.DefaultLayout$LayoutInfo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
            0    4     1  objectFieldList  Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;>;
            0    4     2    longFieldList  Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$LongLocation;>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;>;Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$LongLocation;>;)V
    MethodParameters:
                 Name  Flags
      objectFieldList  
      longFieldList    

  private static java.lang.Class<? extends com.oracle.truffle.api.object.DynamicObject> collectFields(java.lang.Class<? extends com.oracle.truffle.api.object.DynamicObject>, java.util.List<com.oracle.truffle.object.CoreLocations$ObjectLocation>, java.util.List<com.oracle.truffle.object.CoreLocations$LongLocation>);
    descriptor: (Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=3
        start local 0 // java.lang.Class clazz
        start local 1 // java.util.List objectFieldList
        start local 2 // java.util.List primitiveFieldList
         0: .line 276
            aload 0 /* clazz */
            ldc Lcom/oracle/truffle/api/object/DynamicObject;
            if_acmpne 2
         1: .line 277
            aload 0 /* clazz */
            areturn
         2: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/object/DynamicObject;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            aload 1 /* objectFieldList */
            aload 2 /* primitiveFieldList */
            invokestatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.collectFields:(Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)Ljava/lang/Class;
            astore 3 /* layoutClass */
        start local 3 // java.lang.Class layoutClass
         3: .line 282
            getstatic com.oracle.truffle.object.DefaultLayout.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getDynamicFieldAnnotation:()Ljava/lang/Class;
            astore 4 /* dynamicFieldAnnotation */
        start local 4 // java.lang.Class dynamicFieldAnnotation
         4: .line 283
            iconst_0
            istore 5 /* hasDynamicFields */
        start local 5 // boolean hasDynamicFields
         5: .line 284
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 21
      StackMap locals: java.lang.Class java.util.List java.util.List java.lang.Class java.lang.Class int top int int java.lang.reflect.Field[]
      StackMap stack:
         6: aload 9
            iload 7
            aaload
            astore 6 /* field */
        start local 6 // java.lang.reflect.Field field
         7: .line 285
            aload 6 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 8
            aload 6 /* field */
            invokevirtual java.lang.reflect.Field.isSynthetic:()Z
            ifeq 9
         8: .line 286
      StackMap locals: java.lang.Class java.util.List java.util.List java.lang.Class java.lang.Class int java.lang.reflect.Field int int java.lang.reflect.Field[]
      StackMap stack:
            getstatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.$assertionsDisabled:Z
            ifne 20
            aload 6 /* field */
            aload 4 /* dynamicFieldAnnotation */
            invokevirtual java.lang.reflect.Field.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 290
      StackMap locals:
      StackMap stack:
            aload 6 /* field */
            aload 4 /* dynamicFieldAnnotation */
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 20
        10: .line 291
            aload 6 /* field */
            invokestatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.checkDynamicFieldType:(Ljava/lang/reflect/Field;)V
        11: .line 292
            getstatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.$assertionsDisabled:Z
            ifne 12
            aload 6 /* field */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* clazz */
            if_acmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 294
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* hasDynamicFields */
        13: .line 295
            aload 6 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 16
        14: .line 296
            aload 1 /* objectFieldList */
            new com.oracle.truffle.object.CoreLocations$DynamicObjectFieldLocation
            dup
            aload 1 /* objectFieldList */
            invokeinterface java.util.List.size:()I
            aload 6 /* field */
            invokespecial com.oracle.truffle.object.CoreLocations$DynamicObjectFieldLocation.<init>:(ILjava/lang/reflect/Field;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 297
            goto 20
      StackMap locals:
      StackMap stack:
        16: aload 6 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 20
        17: .line 298
            getstatic com.oracle.truffle.object.DefaultLayout$LayoutInfo.UNSAFE:Lsun/misc/Unsafe;
            aload 6 /* field */
            invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            lstore 10 /* offset */
        start local 10 // long offset
        18: .line 299
            lload 10 /* offset */
            ldc 8
            lrem
            lconst_0
            lcmp
            ifne 20
        19: .line 300
            aload 2 /* primitiveFieldList */
            new com.oracle.truffle.object.CoreLocations$DynamicLongFieldLocation
            dup
            aload 2 /* primitiveFieldList */
            invokeinterface java.util.List.size:()I
            lload 10 /* offset */
            aload 0 /* clazz */
            invokespecial com.oracle.truffle.object.CoreLocations$DynamicLongFieldLocation.<init>:(IJLjava/lang/Class;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // long offset
        end local 6 // java.lang.reflect.Field field
        20: .line 284
      StackMap locals: java.lang.Class java.util.List java.util.List java.lang.Class java.lang.Class int top int int java.lang.reflect.Field[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        21: iload 7
            iload 8
            if_icmplt 6
        22: .line 306
            iload 5 /* hasDynamicFields */
            ifeq 24
        23: .line 307
            aload 0 /* clazz */
            astore 3 /* layoutClass */
        24: .line 309
      StackMap locals: java.lang.Class java.util.List java.util.List java.lang.Class java.lang.Class int
      StackMap stack:
            aload 3 /* layoutClass */
            areturn
        end local 5 // boolean hasDynamicFields
        end local 4 // java.lang.Class dynamicFieldAnnotation
        end local 3 // java.lang.Class layoutClass
        end local 2 // java.util.List primitiveFieldList
        end local 1 // java.util.List objectFieldList
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   25     0                   clazz  Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
            0   25     1         objectFieldList  Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;>;
            0   25     2      primitiveFieldList  Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$LongLocation;>;
            3   25     3             layoutClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
            4   25     4  dynamicFieldAnnotation  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            5   25     5        hasDynamicFields  Z
            7   20     6                   field  Ljava/lang/reflect/Field;
           18   20    10                  offset  J
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;>;Ljava/util/List<Lcom/oracle/truffle/object/CoreLocations$LongLocation;>;)Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
    MethodParameters:
                    Name  Flags
      clazz               
      objectFieldList     
      primitiveFieldList  

  private static void checkDynamicFieldType(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 // java.lang.reflect.Field field
         0: .line 313
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 2
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 2
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpeq 2
         1: .line 314
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "@DynamicField annotated field type must be either Object or int or long: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* field */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifeq 4
         3: .line 317
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "@DynamicField annotated field must not be final: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* field */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 319
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.reflect.Field field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  field  Ljava/lang/reflect/Field;
    MethodParameters:
       Name  Flags
      field  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.DefaultLayout$LayoutInfo this
         0: .line 323
            new java.lang.StringBuilder
            dup
            ldc "LayoutInfo [objectFields="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.object.DefaultLayout$LayoutInfo.objectFields:[Lcom/oracle/truffle/object/CoreLocations$ObjectLocation;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", primitiveFields="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.object.DefaultLayout$LayoutInfo.primitiveFields:[Lcom/oracle/truffle/object/CoreLocations$LongLocation;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.object.DefaultLayout$LayoutInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/DefaultLayout$LayoutInfo;
}
SourceFile: "DefaultLayout.java"
NestHost: com.oracle.truffle.object.DefaultLayout
InnerClasses:
  final DynamicLongFieldLocation = com.oracle.truffle.object.CoreLocations$DynamicLongFieldLocation of com.oracle.truffle.object.CoreLocations
  final DynamicObjectFieldLocation = com.oracle.truffle.object.CoreLocations$DynamicObjectFieldLocation of com.oracle.truffle.object.CoreLocations
  public abstract LongLocation = com.oracle.truffle.object.CoreLocations$LongLocation of com.oracle.truffle.object.CoreLocations
  public abstract ObjectLocation = com.oracle.truffle.object.CoreLocations$ObjectLocation of com.oracle.truffle.object.CoreLocations
  private final LayoutInfo = com.oracle.truffle.object.DefaultLayout$LayoutInfo of com.oracle.truffle.object.DefaultLayout
  final CoreAccess = com.oracle.truffle.object.LayoutImpl$CoreAccess of com.oracle.truffle.object.LayoutImpl