public class com.oracle.truffle.object.basic.test.LegacySharedShapeTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.object.basic.test.LegacySharedShapeTest
  super_class: java.lang.Object
{
  final com.oracle.truffle.api.object.Layout layout;
    descriptor: Lcom/oracle/truffle/api/object/Layout;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.object.Shape rootShape;
    descriptor: Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.object.Shape sharedShape;
    descriptor: Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0010) ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.object.Layout.newLayout:()Lcom/oracle/truffle/api/object/Layout$Builder;
            getstatic com.oracle.truffle.api.object.Layout$ImplicitCast.IntToLong:Lcom/oracle/truffle/api/object/Layout$ImplicitCast;
            invokevirtual com.oracle.truffle.api.object.Layout$Builder.addAllowedImplicitCast:(Lcom/oracle/truffle/api/object/Layout$ImplicitCast;)Lcom/oracle/truffle/api/object/Layout$Builder;
            invokevirtual com.oracle.truffle.api.object.Layout$Builder.build:()Lcom/oracle/truffle/api/object/Layout;
            putfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.layout:Lcom/oracle/truffle/api/object/Layout;
         2: .line 57
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.layout:Lcom/oracle/truffle/api/object/Layout;
            new com.oracle.truffle.api.object.ObjectType
            dup
            invokespecial com.oracle.truffle.api.object.ObjectType.<init>:()V
            invokevirtual com.oracle.truffle.api.object.Layout.createShape:(Lcom/oracle/truffle/api/object/ObjectType;)Lcom/oracle/truffle/api/object/Shape;
            putfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
         3: .line 58
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.makeSharedShape:()Lcom/oracle/truffle/api/object/Shape;
            putfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
         4: .line 54
            return
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;

  private static java.lang.Class<?> getLocationType(com.oracle.truffle.api.object.Location);
    descriptor: (Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.Location location
         0: .line 61
            aload 0 /* location */
            checkcast com.oracle.truffle.api.object.TypedLocation
            invokeinterface com.oracle.truffle.api.object.TypedLocation.getType:()Ljava/lang/Class;
            areturn
        end local 0 // com.oracle.truffle.api.object.Location location
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  location  Lcom/oracle/truffle/api/object/Location;
    Signature: (Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      location  

  public void testDifferentLocationsImplicitCast();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 66
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 67
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 68
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location1 */
        start local 2 // com.oracle.truffle.api.object.Location location1
         3: .line 69
            aload 1 /* object */
            ldc "a"
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 70
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 3 /* location2 */
        start local 3 // com.oracle.truffle.api.object.Location location2
         5: .line 72
            aload 2 /* location1 */
            aload 3 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertNotSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
         6: .line 73
            ldc Ljava/lang/Object;
            aload 3 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.LegacySharedShapeTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 76
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* location1 */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 77
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 3 /* location2 */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 78
            return
        end local 3 // com.oracle.truffle.api.object.Location location2
        end local 2 // com.oracle.truffle.api.object.Location location1
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;
            1   10     1     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   10     2  location1  Lcom/oracle/truffle/api/object/Location;
            5   10     3  location2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testNoReuseOfPreviousLocation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 82
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 83
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 84
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location1 */
        start local 2 // com.oracle.truffle.api.object.Location location1
         3: .line 85
            aload 1 /* object */
            ldc "a"
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 86
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 3 /* location2 */
        start local 3 // com.oracle.truffle.api.object.Location location2
         5: .line 88
            aload 2 /* location1 */
            aload 3 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertNotSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
         6: .line 89
            ldc Ljava/lang/Object;
            aload 3 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.LegacySharedShapeTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 91
            aload 1 /* object */
            ldc "b"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 92
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 4 /* locationB */
        start local 4 // com.oracle.truffle.api.object.Location locationB
         9: .line 94
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
        10: .line 95
            ldc "\"b\":int@1"
            aastore
            dup
            iconst_1
        11: .line 96
            ldc "\"a\":Object@0"
            aastore
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
        12: .line 94
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShape:([Ljava/lang/String;Lcom/oracle/truffle/api/object/Shape;)V
        13: .line 97
            aload 1 /* object */
            iconst_2
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
        14: .line 100
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* location1 */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        15: .line 101
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 3 /* location2 */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 102
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* locationB */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        17: .line 103
            return
        end local 4 // com.oracle.truffle.api.object.Location locationB
        end local 3 // com.oracle.truffle.api.object.Location location2
        end local 2 // com.oracle.truffle.api.object.Location location1
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;
            1   18     1     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   18     2  location1  Lcom/oracle/truffle/api/object/Location;
            5   18     3  location2  Lcom/oracle/truffle/api/object/Location;
            9   18     4  locationB  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCanReuseLocationsUntilShared();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 107
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 108
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 109
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* locationA1 */
        start local 2 // com.oracle.truffle.api.object.Location locationA1
         3: .line 110
            aload 1 /* object */
            ldc "a"
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 111
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 3 /* locationA2 */
        start local 3 // com.oracle.truffle.api.object.Location locationA2
         5: .line 113
            aload 2 /* locationA1 */
            aload 3 /* locationA2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
         6: .line 114
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aload 3 /* locationA2 */
            invokestatic com.oracle.truffle.object.basic.test.LegacySharedShapeTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 115
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "\"a\":long@0"
            aastore
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShape:([Ljava/lang/String;Lcom/oracle/truffle/api/object/Shape;)V
         8: .line 116
            aload 1 /* object */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         9: .line 119
            aload 1 /* object */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.makeSharedShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.setShapeAndGrow:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        10: .line 121
            aload 1 /* object */
            ldc "b"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 122
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 4 /* locationB1 */
        start local 4 // com.oracle.truffle.api.object.Location locationB1
        12: .line 123
            aload 1 /* object */
            ldc "b"
            ldc 4
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 124
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 5 /* locationB2 */
        start local 5 // com.oracle.truffle.api.object.Location locationB2
        14: .line 126
            aload 1 /* object */
            ldc "c"
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
        15: .line 128
            aload 4 /* locationB1 */
            aload 5 /* locationB2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertNotSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
        16: .line 129
            ldc Ljava/lang/Object;
            aload 5 /* locationB2 */
            invokestatic com.oracle.truffle.object.basic.test.LegacySharedShapeTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        17: .line 130
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
        18: .line 131
            ldc "\"c\":int@2"
            aastore
            dup
            iconst_1
        19: .line 132
            ldc "\"b\":Object@0"
            aastore
            dup
            iconst_2
        20: .line 133
            ldc "\"a\":long@0"
            aastore
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
        21: .line 130
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShape:([Ljava/lang/String;Lcom/oracle/truffle/api/object/Shape;)V
        22: .line 134
            aload 1 /* object */
            iconst_3
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
        23: .line 136
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 3 /* locationA2 */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        24: .line 138
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* locationB1 */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        25: .line 139
            ldc 4
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 5 /* locationB2 */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.Location.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        26: .line 140
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* object */
            ldc "c"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        27: .line 141
            return
        end local 5 // com.oracle.truffle.api.object.Location locationB2
        end local 4 // com.oracle.truffle.api.object.Location locationB1
        end local 3 // com.oracle.truffle.api.object.Location locationA2
        end local 2 // com.oracle.truffle.api.object.Location locationA1
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;
            1   28     1      object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   28     2  locationA1  Lcom/oracle/truffle/api/object/Location;
            5   28     3  locationA2  Lcom/oracle/truffle/api/object/Location;
           12   28     4  locationB1  Lcom/oracle/truffle/api/object/Location;
           14   28     5  locationB2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testShapeIsSharedAndIdentity();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 145
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 146
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.isShared:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 147
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.makeSharedShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 148
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.isShared:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 149
            aload 1 /* object */
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.setShapeAndGrow:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         5: .line 151
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 152
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            astore 2 /* sharedShapeWithA */
        start local 2 // com.oracle.truffle.api.object.Shape sharedShapeWithA
         7: .line 153
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2 /* sharedShapeWithA */
            invokevirtual com.oracle.truffle.api.object.Shape.isShared:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 155
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* object2 */
        start local 3 // com.oracle.truffle.api.object.DynamicObject object2
         9: .line 156
            aload 3 /* object2 */
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.setShapeAndGrow:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        10: .line 157
            aload 3 /* object2 */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 158
            aload 2 /* sharedShapeWithA */
            aload 3 /* object2 */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 161
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* object3 */
        start local 4 // com.oracle.truffle.api.object.DynamicObject object3
        13: .line 162
            aload 4 /* object3 */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 163
            aload 4 /* object3 */
            aload 4 /* object3 */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 4 /* object3 */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.makeSharedShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.setShapeAndGrow:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        15: .line 164
            aload 2 /* sharedShapeWithA */
            aload 4 /* object3 */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 165
            return
        end local 4 // com.oracle.truffle.api.object.DynamicObject object3
        end local 3 // com.oracle.truffle.api.object.DynamicObject object2
        end local 2 // com.oracle.truffle.api.object.Shape sharedShapeWithA
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;
            1   17     1            object  Lcom/oracle/truffle/api/object/DynamicObject;
            7   17     2  sharedShapeWithA  Lcom/oracle/truffle/api/object/Shape;
            9   17     3           object2  Lcom/oracle/truffle/api/object/DynamicObject;
           13   17     4           object3  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testReuseReplaceProperty();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 169
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 170
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 171
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location1 */
        start local 2 // com.oracle.truffle.api.object.Location location1
         3: .line 172
            aload 1 /* object */
            ldc "a"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            bipush 42
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;I)V
         4: .line 173
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 3 /* location2 */
        start local 3 // com.oracle.truffle.api.object.Location location2
         5: .line 174
            aload 2 /* location1 */
            aload 3 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
         6: .line 175
            return
        end local 3 // com.oracle.truffle.api.object.Location location2
        end local 2 // com.oracle.truffle.api.object.Location location1
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;
            1    7     1     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3    7     2  location1  Lcom/oracle/truffle/api/object/Location;
            5    7     3  location2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDeleteFromSharedShape();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 179
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 180
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            astore 2 /* emptyShape */
        start local 2 // com.oracle.truffle.api.object.Shape emptyShape
         2: .line 182
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 183
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            astore 3 /* aShape */
        start local 3 // com.oracle.truffle.api.object.Shape aShape
         4: .line 184
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.delete:(Ljava/lang/Object;)Z
            pop
         5: .line 185
            aload 2 /* emptyShape */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 187
            aload 1 /* object */
            ldc "a"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 188
            aload 3 /* aShape */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 189
            aload 3 /* aShape */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertNotSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
         9: .line 190
            aload 1 /* object */
            ldc "b"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 191
            aload 3 /* aShape */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertNotSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
        11: .line 192
            return
        end local 3 // com.oracle.truffle.api.object.Shape aShape
        end local 2 // com.oracle.truffle.api.object.Shape emptyShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;
            1   12     1      object  Lcom/oracle/truffle/api/object/DynamicObject;
            2   12     2  emptyShape  Lcom/oracle/truffle/api/object/Shape;
            4   12     3      aShape  Lcom/oracle/truffle/api/object/Shape;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDeleteFromSharedShape2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
         0: .line 196
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacySharedShapeTest.sharedShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 197
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            astore 2 /* emptyShape */
        start local 2 // com.oracle.truffle.api.object.Shape emptyShape
         2: .line 199
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 200
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            astore 3 /* aShape */
        start local 3 // com.oracle.truffle.api.object.Shape aShape
         4: .line 201
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.delete:(Ljava/lang/Object;)Z
            pop
         5: .line 202
            aload 2 /* emptyShape */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 204
            aload 1 /* object */
            ldc "b"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 205
            aload 3 /* aShape */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertNotSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
         8: .line 206
            return
        end local 3 // com.oracle.truffle.api.object.Shape aShape
        end local 2 // com.oracle.truffle.api.object.Shape emptyShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacySharedShapeTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/oracle/truffle/object/basic/test/LegacySharedShapeTest;
            1    9     1      object  Lcom/oracle/truffle/api/object/DynamicObject;
            2    9     2  emptyShape  Lcom/oracle/truffle/api/object/Shape;
            4    9     3      aShape  Lcom/oracle/truffle/api/object/Shape;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "LegacySharedShapeTest.java"
InnerClasses:
  public final Builder = com.oracle.truffle.api.object.Layout$Builder of com.oracle.truffle.api.object.Layout
  public final ImplicitCast = com.oracle.truffle.api.object.Layout$ImplicitCast of com.oracle.truffle.api.object.Layout