public class com.oracle.truffle.object.basic.test.ImplicitCastTest extends com.oracle.truffle.api.test.AbstractParametrizedLibraryTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.object.basic.test.ImplicitCastTest
  super_class: com.oracle.truffle.api.test.AbstractParametrizedLibraryTest
{
  static final com.oracle.truffle.api.object.Layout longLayout;
    descriptor: Lcom/oracle/truffle/api/object/Layout;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final com.oracle.truffle.api.object.Layout doubleLayout;
    descriptor: Lcom/oracle/truffle/api/object/Layout;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  public com.oracle.truffle.api.object.Layout layout;
    descriptor: Lcom/oracle/truffle/api/object/Layout;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 1)

  public int intVal;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 2)

  public java.lang.Object otherVal;
    descriptor: Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 3)

  public java.lang.Class<?> otherPrimClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Signature: Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 4)

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 67
            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;
            putstatic com.oracle.truffle.object.basic.test.ImplicitCastTest.longLayout:Lcom/oracle/truffle/api/object/Layout;
         1: .line 68
            invokestatic com.oracle.truffle.api.object.Layout.newLayout:()Lcom/oracle/truffle/api/object/Layout$Builder;
            getstatic com.oracle.truffle.api.object.Layout$ImplicitCast.IntToDouble: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;
            putstatic com.oracle.truffle.object.basic.test.ImplicitCastTest.doubleLayout:Lcom/oracle/truffle/api/object/Layout;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
         0: .line 65
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.AbstractParametrizedLibraryTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/basic/test/ImplicitCastTest;

  public static java.util.Collection<java.lang.Object[]> data();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=0
         0: .line 72
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* params */
        start local 0 // java.util.List params
         1: .line 74
            invokestatic com.oracle.truffle.api.test.AbstractParametrizedLibraryTest$TestRun.values:()[Lcom/oracle/truffle/api/test/AbstractParametrizedLibraryTest$TestRun;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 6
      StackMap locals: java.util.List top int int com.oracle.truffle.api.test.AbstractParametrizedLibraryTest$TestRun[]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* run */
        start local 1 // com.oracle.truffle.api.test.AbstractParametrizedLibraryTest$TestRun run
         3: .line 75
            aload 0 /* params */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* run */
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.object.basic.test.ImplicitCastTest.longLayout:Lcom/oracle/truffle/api/object/Layout;
            aastore
            dup
            iconst_2
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            ldc 4398046511104
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_4
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 76
            aload 0 /* params */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* run */
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.object.basic.test.ImplicitCastTest.doubleLayout:Lcom/oracle/truffle/api/object/Layout;
            aastore
            dup
            iconst_2
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            ldc 3.14
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_4
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aastore
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 1 // com.oracle.truffle.api.test.AbstractParametrizedLibraryTest$TestRun run
         5: .line 74
            iinc 2 1
      StackMap locals:
      StackMap stack:
         6: iload 2
            iload 3
            if_icmplt 2
         7: .line 79
            aload 0 /* params */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // java.util.List params
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    8     0  params  Ljava/util/List<[Ljava/lang/Object;>;
            3    5     1     run  Lcom/oracle/truffle/api/test/AbstractParametrizedLibraryTest$TestRun;
    Signature: ()Ljava/util/Collection<[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameters()

  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 89
            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 testIntOther();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
         0: .line 94
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.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;
            astore 1 /* rootShape */
        start local 1 // com.oracle.truffle.api.object.Shape rootShape
         1: .line 95
            aload 1 /* rootShape */
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* object */
        start local 2 // com.oracle.truffle.api.object.DynamicObject object
         2: .line 97
            aload 0 /* this */
            ldc Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.object.basic.test.ImplicitCastTest.createLibrary:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
            astore 3 /* library */
        start local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
         3: .line 99
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.intVal:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 100
            aload 2 /* 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 4 /* location1 */
        start local 4 // com.oracle.truffle.api.object.Location location1
         5: .line 101
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aload 4 /* location1 */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 103
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 104
            aload 2 /* 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 5 /* location2 */
        start local 5 // com.oracle.truffle.api.object.Location location2
         8: .line 105
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherPrimClass:Ljava/lang/Class;
            aload 5 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 107
            aload 4 /* location1 */
            aload 5 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
        11: .line 108
            return
        end local 5 // com.oracle.truffle.api.object.Location location2
        end local 4 // com.oracle.truffle.api.object.Location location1
        end local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
        end local 2 // com.oracle.truffle.api.object.DynamicObject object
        end local 1 // com.oracle.truffle.api.object.Shape rootShape
        end local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/oracle/truffle/object/basic/test/ImplicitCastTest;
            1   12     1  rootShape  Lcom/oracle/truffle/api/object/Shape;
            2   12     2     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   12     3    library  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            5   12     4  location1  Lcom/oracle/truffle/api/object/Location;
            8   12     5  location2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testOtherInt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
         0: .line 112
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.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;
            astore 1 /* rootShape */
        start local 1 // com.oracle.truffle.api.object.Shape rootShape
         1: .line 113
            aload 1 /* rootShape */
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* object */
        start local 2 // com.oracle.truffle.api.object.DynamicObject object
         2: .line 115
            aload 0 /* this */
            ldc Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.object.basic.test.ImplicitCastTest.createLibrary:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
            astore 3 /* library */
        start local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
         3: .line 117
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 118
            aload 2 /* 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 4 /* location1 */
        start local 4 // com.oracle.truffle.api.object.Location location1
         5: .line 119
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherPrimClass:Ljava/lang/Class;
            aload 4 /* location1 */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 121
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.intVal:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 122
            aload 2 /* 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 5 /* location2 */
        start local 5 // com.oracle.truffle.api.object.Location location2
         8: .line 123
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherPrimClass:Ljava/lang/Class;
            aload 5 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 124
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 125
            aload 4 /* location1 */
            aload 5 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
        11: .line 126
            return
        end local 5 // com.oracle.truffle.api.object.Location location2
        end local 4 // com.oracle.truffle.api.object.Location location1
        end local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
        end local 2 // com.oracle.truffle.api.object.DynamicObject object
        end local 1 // com.oracle.truffle.api.object.Shape rootShape
        end local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/oracle/truffle/object/basic/test/ImplicitCastTest;
            1   12     1  rootShape  Lcom/oracle/truffle/api/object/Shape;
            2   12     2     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   12     3    library  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            5   12     4  location1  Lcom/oracle/truffle/api/object/Location;
            8   12     5  location2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testIntOtherDoesNotGoBack();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
         0: .line 130
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.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;
            astore 1 /* rootShape */
        start local 1 // com.oracle.truffle.api.object.Shape rootShape
         1: .line 131
            aload 1 /* rootShape */
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* object */
        start local 2 // com.oracle.truffle.api.object.DynamicObject object
         2: .line 133
            aload 0 /* this */
            ldc Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.object.basic.test.ImplicitCastTest.createLibrary:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
            astore 3 /* library */
        start local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
         3: .line 135
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.intVal:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 136
            aload 2 /* 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 4 /* location1 */
        start local 4 // com.oracle.truffle.api.object.Location location1
         5: .line 137
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aload 4 /* location1 */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 139
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 140
            aload 2 /* 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 5 /* location2 */
        start local 5 // com.oracle.truffle.api.object.Location location2
         8: .line 141
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherPrimClass:Ljava/lang/Class;
            aload 5 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 142
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 143
            aload 4 /* location1 */
            aload 5 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
        11: .line 145
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.intVal:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 146
            aload 2 /* 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 6 /* location3 */
        start local 6 // com.oracle.truffle.api.object.Location location3
        13: .line 147
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherPrimClass:Ljava/lang/Class;
            aload 6 /* location3 */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 148
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        15: .line 149
            aload 5 /* location2 */
            aload 6 /* location3 */
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertSameLocation:(Lcom/oracle/truffle/api/object/Location;Lcom/oracle/truffle/api/object/Location;)V
        16: .line 150
            return
        end local 6 // com.oracle.truffle.api.object.Location location3
        end local 5 // com.oracle.truffle.api.object.Location location2
        end local 4 // com.oracle.truffle.api.object.Location location1
        end local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
        end local 2 // com.oracle.truffle.api.object.DynamicObject object
        end local 1 // com.oracle.truffle.api.object.Shape rootShape
        end local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/oracle/truffle/object/basic/test/ImplicitCastTest;
            1   17     1  rootShape  Lcom/oracle/truffle/api/object/Shape;
            2   17     2     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   17     3    library  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            5   17     4  location1  Lcom/oracle/truffle/api/object/Location;
            8   17     5  location2  Lcom/oracle/truffle/api/object/Location;
           13   17     6  location3  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testIntObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
         0: .line 154
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.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;
            astore 1 /* rootShape */
        start local 1 // com.oracle.truffle.api.object.Shape rootShape
         1: .line 155
            aload 1 /* rootShape */
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* object */
        start local 2 // com.oracle.truffle.api.object.DynamicObject object
         2: .line 157
            aload 0 /* this */
            ldc Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.object.basic.test.ImplicitCastTest.createLibrary:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
            astore 3 /* library */
        start local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
         3: .line 159
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.intVal:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 160
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            ldc ""
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 161
            aload 2 /* 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 4 /* location */
        start local 4 // com.oracle.truffle.api.object.Location location
         6: .line 162
            ldc Ljava/lang/Object;
            aload 4 /* location */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 163
            ldc Ljava/lang/String;
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 164
            return
        end local 4 // com.oracle.truffle.api.object.Location location
        end local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
        end local 2 // com.oracle.truffle.api.object.DynamicObject object
        end local 1 // com.oracle.truffle.api.object.Shape rootShape
        end local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/oracle/truffle/object/basic/test/ImplicitCastTest;
            1    9     1  rootShape  Lcom/oracle/truffle/api/object/Shape;
            2    9     2     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3    9     3    library  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            6    9     4   location  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testIntOtherObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
         0: .line 168
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.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;
            astore 1 /* rootShape */
        start local 1 // com.oracle.truffle.api.object.Shape rootShape
         1: .line 169
            aload 1 /* rootShape */
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* object */
        start local 2 // com.oracle.truffle.api.object.DynamicObject object
         2: .line 171
            aload 0 /* this */
            ldc Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.object.basic.test.ImplicitCastTest.createLibrary:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
            astore 3 /* library */
        start local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
         3: .line 173
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.intVal:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 174
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 175
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            ldc ""
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 176
            aload 2 /* 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 4 /* location */
        start local 4 // com.oracle.truffle.api.object.Location location
         7: .line 177
            ldc Ljava/lang/Object;
            aload 4 /* location */
            invokestatic com.oracle.truffle.object.basic.test.ImplicitCastTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 178
            ldc Ljava/lang/String;
            aload 3 /* library */
            aload 2 /* object */
            ldc "a"
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 179
            return
        end local 4 // com.oracle.truffle.api.object.Location location
        end local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary library
        end local 2 // com.oracle.truffle.api.object.DynamicObject object
        end local 1 // com.oracle.truffle.api.object.Shape rootShape
        end local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/oracle/truffle/object/basic/test/ImplicitCastTest;
            1   10     1  rootShape  Lcom/oracle/truffle/api/object/Shape;
            2   10     2     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   10     3    library  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            7   10     4   location  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testLocationDecoratorEquals();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
         0: .line 183
            invokestatic com.oracle.truffle.api.object.Layout.newLayout:()Lcom/oracle/truffle/api/object/Layout$Builder;
            invokevirtual com.oracle.truffle.api.object.Layout$Builder.build:()Lcom/oracle/truffle/api/object/Layout;
            astore 1 /* defaultLayout */
        start local 1 // com.oracle.truffle.api.object.Layout defaultLayout
         1: .line 184
            aload 1 /* defaultLayout */
            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;
            astore 2 /* defaultRootShape */
        start local 2 // com.oracle.truffle.api.object.Shape defaultRootShape
         2: .line 185
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.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;
            astore 3 /* implicitCastRootShape */
        start local 3 // com.oracle.truffle.api.object.Shape implicitCastRootShape
         3: .line 187
            aload 3 /* implicitCastRootShape */
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* object1 */
        start local 4 // com.oracle.truffle.api.object.DynamicObject object1
         4: .line 189
            aload 0 /* this */
            ldc Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 4 /* object1 */
            invokevirtual com.oracle.truffle.object.basic.test.ImplicitCastTest.createLibrary:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
            astore 5 /* library */
        start local 5 // com.oracle.truffle.api.object.DynamicObjectLibrary library
         5: .line 191
            aload 5 /* library */
            aload 4 /* object1 */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 192
            aload 4 /* object1 */
            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 6 /* location1 */
        start local 6 // com.oracle.truffle.api.object.Location location1
         7: .line 195
            aload 5 /* library */
            aload 4 /* object1 */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.intVal:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putIfPresent:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         8: .line 196
            aload 6 /* location1 */
            aload 4 /* object1 */
            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 org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 198
            aload 2 /* defaultRootShape */
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* object2 */
        start local 7 // com.oracle.truffle.api.object.DynamicObject object2
        10: .line 199
            aload 5 /* library */
            aload 7 /* object2 */
            ldc "a"
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.ImplicitCastTest.otherVal:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.put:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 200
            aload 7 /* object2 */
            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 8 /* location2 */
        start local 8 // com.oracle.truffle.api.object.Location location2
        12: .line 203
            aload 6 /* location1 */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 8 /* location2 */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 204
            aload 6 /* location1 */
            aload 8 /* location2 */
            invokestatic org.junit.Assert.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 205
            return
        end local 8 // com.oracle.truffle.api.object.Location location2
        end local 7 // com.oracle.truffle.api.object.DynamicObject object2
        end local 6 // com.oracle.truffle.api.object.Location location1
        end local 5 // com.oracle.truffle.api.object.DynamicObjectLibrary library
        end local 4 // com.oracle.truffle.api.object.DynamicObject object1
        end local 3 // com.oracle.truffle.api.object.Shape implicitCastRootShape
        end local 2 // com.oracle.truffle.api.object.Shape defaultRootShape
        end local 1 // com.oracle.truffle.api.object.Layout defaultLayout
        end local 0 // com.oracle.truffle.object.basic.test.ImplicitCastTest this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   15     0                   this  Lcom/oracle/truffle/object/basic/test/ImplicitCastTest;
            1   15     1          defaultLayout  Lcom/oracle/truffle/api/object/Layout;
            2   15     2       defaultRootShape  Lcom/oracle/truffle/api/object/Shape;
            3   15     3  implicitCastRootShape  Lcom/oracle/truffle/api/object/Shape;
            4   15     4                object1  Lcom/oracle/truffle/api/object/DynamicObject;
            5   15     5                library  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            7   15     6              location1  Lcom/oracle/truffle/api/object/Location;
           10   15     7                object2  Lcom/oracle/truffle/api/object/DynamicObject;
           12   15     8              location2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ImplicitCastTest.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
  public final TestRun = com.oracle.truffle.api.test.AbstractParametrizedLibraryTest$TestRun of com.oracle.truffle.api.test.AbstractParametrizedLibraryTest
  public abstract Parameter = org.junit.runners.Parameterized$Parameter of org.junit.runners.Parameterized
  public abstract Parameters = org.junit.runners.Parameterized$Parameters of org.junit.runners.Parameterized
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)