public class com.oracle.truffle.api.dsl.test.ArrayTest$ArrayTypeSystem
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.dsl.test.ArrayTest$ArrayTypeSystem
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.ArrayTest$ArrayTypeSystem this
         0: .line 127
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.dsl.test.ArrayTest$ArrayTypeSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/ArrayTest$ArrayTypeSystem;

  public static double[] castFromInt(int[]);
    descriptor: ([I)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // int[] array
         0: .line 131
            aload 0 /* array */
            arraylength
            newarray 7
            astore 1 /* newArray */
        start local 1 // double[] newArray
         1: .line 132
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 133
      StackMap locals: double[] int
      StackMap stack:
            aload 1 /* newArray */
            iload 2 /* i */
            aload 0 /* array */
            iload 2 /* i */
            iaload
            i2d
            dastore
         4: .line 132
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* array */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 135
            aload 1 /* newArray */
            areturn
        end local 1 // double[] newArray
        end local 0 // int[] array
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0     array  [I
            1    7     1  newArray  [D
            2    6     2         i  I
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.ImplicitCast()
    MethodParameters:
       Name  Flags
      array  

  public static boolean isIntArray2(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object array
         0: .line 140
            aload 0 /* array */
            instanceof int[]
            ireturn
        end local 0 // java.lang.Object array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  Ljava/lang/Object;
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.TypeCheck(value = [I)
    MethodParameters:
       Name  Flags
      array  

  public static int[] asIntArray(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object array
         0: .line 145
            aload 0 /* array */
            checkcast int[]
            areturn
        end local 0 // java.lang.Object array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  Ljava/lang/Object;
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.TypeCast(value = [I)
    MethodParameters:
       Name  Flags
      array  
}
SourceFile: "ArrayTest.java"
NestHost: com.oracle.truffle.api.dsl.test.ArrayTest
InnerClasses:
  public ArrayTypeSystem = com.oracle.truffle.api.dsl.test.ArrayTest$ArrayTypeSystem of com.oracle.truffle.api.dsl.test.ArrayTest
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.TypeSystem(value = {I, [I, [D, [Ljava/lang/String;, [Ljava/lang/Object;})