public abstract class com.oracle.truffle.object.LocationImpl extends com.oracle.truffle.api.object.Location
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.object.LocationImpl
  super_class: com.oracle.truffle.api.object.Location
{
  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 57
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.object.Location.<init>:()V
         1: .line 58
            return
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public void set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object value
        start local 3 // com.oracle.truffle.api.object.Shape shape
         0: .line 87
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* value */
            aload 1 /* store */
            aload 3 /* shape */
            invokestatic com.oracle.truffle.object.LocationImpl.checkShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)Z
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
         1: .line 88
            return
        end local 3 // com.oracle.truffle.api.object.Shape shape
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1  store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2  value  Ljava/lang/Object;
            0    2     3  shape  Lcom/oracle/truffle/api/object/Shape;
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException, com.oracle.truffle.api.object.FinalLocationException
    MethodParameters:
       Name  Flags
      store  
      value  
      shape  

  public void set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object value
        start local 3 // com.oracle.truffle.api.object.Shape oldShape
        start local 4 // com.oracle.truffle.api.object.Shape newShape
         0: .line 92
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.object.LocationImpl.canStore:(Ljava/lang/Object;)Z
            ifeq 6
         1: .line 93
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* store */
            aload 3 /* oldShape */
            aload 4 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         2: .line 95
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.object.LocationImpl.setInternal:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
         3: .line 96
            goto 7
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.object.IncompatibleLocationException
         4: pop
         5: .line 97
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         6: .line 100
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.LocationImpl.incompatibleLocation:()Lcom/oracle/truffle/api/object/IncompatibleLocationException;
            athrow
         7: .line 102
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.api.object.Shape newShape
        end local 3 // com.oracle.truffle.api.object.Shape oldShape
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/object/LocationImpl;
            0    8     1     store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    8     2     value  Ljava/lang/Object;
            0    8     3  oldShape  Lcom/oracle/truffle/api/object/Shape;
            0    8     4  newShape  Lcom/oracle/truffle/api/object/Shape;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.object.IncompatibleLocationException
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException
    MethodParameters:
          Name  Flags
      store     
      value     
      oldShape  
      newShape  

  protected final java.lang.Object getInternal(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
         0: .line 107
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1  store  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      store  

  public abstract java.lang.Object get(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      store      
      condition  

  protected long getLong(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // boolean condition
         0: .line 119
            aload 0 /* this */
            aload 1 /* store */
            iload 2 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
            invokestatic com.oracle.truffle.object.LocationImpl.expectLong:(Ljava/lang/Object;)J
            lreturn
        end local 2 // boolean condition
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
           Name  Flags
      store      
      condition  

  protected int getInt(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // boolean condition
         0: .line 123
            aload 0 /* this */
            aload 1 /* store */
            iload 2 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
            invokestatic com.oracle.truffle.object.LocationImpl.expectInteger:(Ljava/lang/Object;)I
            ireturn
        end local 2 // boolean condition
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
           Name  Flags
      store      
      condition  

  protected double getDouble(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // boolean condition
         0: .line 127
            aload 0 /* this */
            aload 1 /* store */
            iload 2 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
            invokestatic com.oracle.truffle.object.LocationImpl.expectDouble:(Ljava/lang/Object;)D
            dreturn
        end local 2 // boolean condition
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
           Name  Flags
      store      
      condition  

  protected boolean getBoolean(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // boolean condition
         0: .line 131
            aload 0 /* this */
            aload 1 /* store */
            iload 2 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
            invokestatic com.oracle.truffle.object.LocationImpl.expectBoolean:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // boolean condition
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
           Name  Flags
      store      
      condition  

  protected void set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object value
        start local 3 // boolean condition
         0: .line 136
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* value */
            iload 3 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.setInternal:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
         1: .line 137
            return
        end local 3 // boolean condition
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2      value  Ljava/lang/Object;
            0    2     3  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException, com.oracle.truffle.api.object.FinalLocationException
    MethodParameters:
           Name  Flags
      store      
      value      
      condition  

  protected abstract void setInternal(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException
    MethodParameters:
           Name  Flags
      store      
      value      
      condition  

  protected static final boolean checkShape(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)Z
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject store
        start local 1 // com.oracle.truffle.api.object.Shape shape
         0: .line 145
            aload 0 /* store */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 1 /* shape */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // com.oracle.truffle.api.object.Shape shape
        end local 0 // com.oracle.truffle.api.object.DynamicObject store
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      store  
      shape  

  protected final void setInternal(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object value
         0: .line 151
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* value */
            iconst_0
            invokevirtual com.oracle.truffle.object.LocationImpl.setInternal:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
         1: .line 152
            return
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1  store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2  value  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException
    MethodParameters:
       Name  Flags
      store  
      value  

  public boolean canSet(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object value
         0: .line 157
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.object.LocationImpl.canStore:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.object.LocationImpl.canStoreFinal:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1  store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      store  
      value  

  public boolean canSet(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // java.lang.Object value
         0: .line 163
            aload 0 /* this */
            aconst_null
            aload 1 /* value */
            invokevirtual com.oracle.truffle.object.LocationImpl.canSet:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public boolean canStore(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // java.lang.Object value
         0: .line 169
            iconst_1
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  protected boolean canStoreFinal(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object value
         0: .line 175
            iconst_1
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/object/LocationImpl;
            0    1     1  store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      store  
      value  

  public boolean isFinal();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 181
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public boolean isConstant();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 187
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 194
            iconst_1
            istore 1 /* result */
        start local 1 // int result
         1: .line 195
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 2
            sipush 1231
            goto 3
      StackMap locals: com.oracle.truffle.object.LocationImpl int
      StackMap stack: int
         2: sipush 1237
      StackMap locals: com.oracle.truffle.object.LocationImpl int
      StackMap stack: int int
         3: iadd
            istore 1 /* result */
         4: .line 196
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/object/LocationImpl;
            1    5     1  result  I

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // java.lang.Object obj
         0: .line 202
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 2
         1: .line 203
            iconst_1
            ireturn
         2: .line 205
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnonnull 4
         3: .line 206
            iconst_0
            ireturn
         4: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 6
         5: .line 209
            iconst_0
            ireturn
         6: .line 211
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/object/LocationImpl;
            0    7     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 217
            aload 0 /* this */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 1
            ldc "f"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 1 /* finalString */
        start local 1 // java.lang.String finalString
         3: .line 218
            aload 0 /* this */
            instanceof com.oracle.truffle.api.object.TypedLocation
            ifeq 4
            aload 0 /* this */
            checkcast com.oracle.truffle.api.object.TypedLocation
            invokeinterface com.oracle.truffle.api.object.TypedLocation.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            goto 5
      StackMap locals: java.lang.String
      StackMap stack:
         4: ldc "Object"
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 2 /* typeString */
        start local 2 // java.lang.String typeString
         6: .line 219
            new java.lang.StringBuilder
            dup
            aload 1 /* finalString */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* typeString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.object.LocationImpl.getWhereString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String typeString
        end local 1 // java.lang.String finalString
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/oracle/truffle/object/LocationImpl;
            3    7     1  finalString  Ljava/lang/String;
            6    7     2   typeString  Ljava/lang/String;

  protected java.lang.String getWhereString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 224
            ldc ""
            areturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public int objectArrayCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 233
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public int objectFieldCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 242
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public int primitiveFieldCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 251
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public int primitiveArrayCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 260
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  public abstract void accept(com.oracle.truffle.object.LocationImpl$LocationVisitor);
    descriptor: (Lcom/oracle/truffle/object/LocationImpl$LocationVisitor;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
                 Name  Flags
      locationVisitor  

  protected com.oracle.truffle.object.LocationImpl getInternalLocation();
    descriptor: ()Lcom/oracle/truffle/object/LocationImpl;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 272
            aload 0 /* this */
            areturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  static boolean isSameLocation(com.oracle.truffle.object.LocationImpl, com.oracle.truffle.object.LocationImpl);
    descriptor: (Lcom/oracle/truffle/object/LocationImpl;Lcom/oracle/truffle/object/LocationImpl;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.LocationImpl loc1
        start local 1 // com.oracle.truffle.object.LocationImpl loc2
         0: .line 276
            aload 0 /* loc1 */
            aload 1 /* loc2 */
            if_acmpeq 1
            aload 0 /* loc1 */
            invokevirtual com.oracle.truffle.object.LocationImpl.getInternalLocation:()Lcom/oracle/truffle/object/LocationImpl;
            aload 1 /* loc2 */
            invokevirtual com.oracle.truffle.object.LocationImpl.getInternalLocation:()Lcom/oracle/truffle/object/LocationImpl;
            invokevirtual com.oracle.truffle.object.LocationImpl.equals:(Ljava/lang/Object;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // com.oracle.truffle.object.LocationImpl loc2
        end local 0 // com.oracle.truffle.object.LocationImpl loc1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  loc1  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1  loc2  Lcom/oracle/truffle/object/LocationImpl;
    MethodParameters:
      Name  Flags
      loc1  
      loc2  

  protected void setInt(com.oracle.truffle.api.object.DynamicObject, int, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;IZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // int value
        start local 3 // boolean condition
         0: .line 281
            aload 0 /* this */
            aload 1 /* store */
            iload 2 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 3 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
         1: .line 282
            return
        end local 3 // boolean condition
        end local 2 // int value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2      value  I
            0    2     3  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException, com.oracle.truffle.api.object.FinalLocationException
    MethodParameters:
           Name  Flags
      store      
      value      
      condition  

  protected void setLong(com.oracle.truffle.api.object.DynamicObject, long, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // long value
        start local 4 // boolean condition
         0: .line 286
            aload 0 /* this */
            aload 1 /* store */
            lload 2 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iload 4 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
         1: .line 287
            return
        end local 4 // boolean condition
        end local 2 // long value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2      value  J
            0    2     4  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException, com.oracle.truffle.api.object.FinalLocationException
    MethodParameters:
           Name  Flags
      store      
      value      
      condition  

  protected void setDouble(com.oracle.truffle.api.object.DynamicObject, double, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;DZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.object.LocationImpl this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // double value
        start local 4 // boolean condition
         0: .line 291
            aload 0 /* this */
            aload 1 /* store */
            dload 2 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            iload 4 /* condition */
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
         1: .line 292
            return
        end local 4 // boolean condition
        end local 2 // double value
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/object/LocationImpl;
            0    2     1      store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2      value  D
            0    2     4  condition  Z
    Exceptions:
      throws com.oracle.truffle.api.object.IncompatibleLocationException, com.oracle.truffle.api.object.FinalLocationException
    MethodParameters:
           Name  Flags
      store      
      value      
      condition  

  protected boolean isIntLocation();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 295
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  protected boolean isLongLocation();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 299
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  protected boolean isDoubleLocation();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 303
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  protected boolean isImplicitCastIntToLong();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 307
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  protected boolean isImplicitCastIntToDouble();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.LocationImpl this
         0: .line 311
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.object.LocationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/LocationImpl;

  static boolean expectBoolean(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 315
            aload 0 /* value */
            instanceof java.lang.Boolean
            ifeq 2
         1: .line 316
            aload 0 /* value */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         2: .line 318
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.nodes.UnexpectedResultException
            dup
            aload 0 /* value */
            invokespecial com.oracle.truffle.api.nodes.UnexpectedResultException.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      value  

  static int expectInteger(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 322
            aload 0 /* value */
            instanceof java.lang.Integer
            ifeq 2
         1: .line 323
            aload 0 /* value */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
         2: .line 325
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.nodes.UnexpectedResultException
            dup
            aload 0 /* value */
            invokespecial com.oracle.truffle.api.nodes.UnexpectedResultException.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      value  

  static double expectDouble(java.lang.Object);
    descriptor: (Ljava/lang/Object;)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 329
            aload 0 /* value */
            instanceof java.lang.Double
            ifeq 2
         1: .line 330
            aload 0 /* value */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
         2: .line 332
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.nodes.UnexpectedResultException
            dup
            aload 0 /* value */
            invokespecial com.oracle.truffle.api.nodes.UnexpectedResultException.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      value  

  static long expectLong(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 336
            aload 0 /* value */
            instanceof java.lang.Long
            ifeq 2
         1: .line 337
            aload 0 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lreturn
         2: .line 339
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.nodes.UnexpectedResultException
            dup
            aload 0 /* value */
            invokespecial com.oracle.truffle.api.nodes.UnexpectedResultException.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "LocationImpl.java"
NestMembers:
  com.oracle.truffle.object.LocationImpl$InternalLongLocation  com.oracle.truffle.object.LocationImpl$LocationVisitor
InnerClasses:
  final CoreAccess = com.oracle.truffle.object.LayoutImpl$CoreAccess of com.oracle.truffle.object.LayoutImpl
  public abstract InternalLongLocation = com.oracle.truffle.object.LocationImpl$InternalLongLocation of com.oracle.truffle.object.LocationImpl
  public abstract LocationVisitor = com.oracle.truffle.object.LocationImpl$LocationVisitor of com.oracle.truffle.object.LocationImpl