public class com.oracle.truffle.nfi.test.NumericNFITest extends com.oracle.truffle.nfi.test.NFITest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.nfi.test.NumericNFITest
  super_class: com.oracle.truffle.nfi.test.NFITest
{
  public static final com.oracle.truffle.nfi.spi.types.NativeSimpleType[] NUMERIC_TYPES;
    descriptor: [Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public com.oracle.truffle.nfi.spi.types.NativeSimpleType type;
    descriptor: Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 0)

  private final java.lang.Object callback;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object negCallback;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object wrap;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 74
            bipush 10
            anewarray com.oracle.truffle.nfi.spi.types.NativeSimpleType
            dup
            iconst_0
         1: .line 75
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            iconst_2
         2: .line 76
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            iconst_3
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            iconst_4
         3: .line 77
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            iconst_5
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            bipush 6
         4: .line 78
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            bipush 7
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            bipush 8
         5: .line 79
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.FLOAT:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            bipush 9
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.DOUBLE:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
         6: .line 74
            putstatic com.oracle.truffle.nfi.test.NumericNFITest.NUMERIC_TYPES:[Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
         7: .line 80
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
         0: .line 72
            aload 0 /* this */
            invokespecial com.oracle.truffle.nfi.test.NFITest.<init>:()V
         1: .line 225
            aload 0 /* this */
            new com.oracle.truffle.nfi.test.interop.TestCallback
            dup
            iconst_1
            aload 0 /* this */
            invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ([Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/nfi/test/NumericNFITest.lambda$0([Ljava/lang/Object;)Ljava/lang/Object; (7)
                  ([Ljava/lang/Object;)Ljava/lang/Object;
            invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
            putfield com.oracle.truffle.nfi.test.NumericNFITest.callback:Ljava/lang/Object;
         2: .line 236
            aload 0 /* this */
            new com.oracle.truffle.nfi.test.interop.TestCallback
            dup
            iconst_1
            aload 0 /* this */
            invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ([Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/nfi/test/NumericNFITest.lambda$1([Ljava/lang/Object;)Ljava/lang/Object; (7)
                  ([Ljava/lang/Object;)Ljava/lang/Object;
            invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
            putfield com.oracle.truffle.nfi.test.NumericNFITest.negCallback:Ljava/lang/Object;
         3: .line 292
            aload 0 /* this */
            new com.oracle.truffle.nfi.test.interop.TestCallback
            dup
            iconst_1
            aload 0 /* this */
            invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ([Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/nfi/test/NumericNFITest.lambda$2([Ljava/lang/Object;)Ljava/lang/Object; (7)
                  ([Ljava/lang/Object;)Ljava/lang/Object;
            invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
            putfield com.oracle.truffle.nfi.test.NumericNFITest.wrap:Ljava/lang/Object;
         4: .line 72
            return
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/nfi/test/NumericNFITest;

  public static java.util.Collection<java.lang.Object[]> data();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=0
         0: .line 84
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* ret */
        start local 0 // java.util.ArrayList ret
         1: .line 85
            getstatic com.oracle.truffle.nfi.test.NumericNFITest.NUMERIC_TYPES:[Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: java.util.ArrayList top int int com.oracle.truffle.nfi.spi.types.NativeSimpleType[]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* type */
        start local 1 // com.oracle.truffle.nfi.spi.types.NativeSimpleType type
         3: .line 86
            aload 0 /* ret */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* type */
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 1 // com.oracle.truffle.nfi.spi.types.NativeSimpleType type
         4: .line 85
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 2
         6: .line 88
            aload 0 /* ret */
            areturn
        end local 0 // java.util.ArrayList ret
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    7     0   ret  Ljava/util/ArrayList<[Ljava/lang/Object;>;
            3    4     1  type  Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
    Signature: ()Ljava/util/Collection<[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameters(name = "{0}")

  private org.hamcrest.Matcher<java.lang.Object> number(long);
    descriptor: (J)Lorg/hamcrest/Matcher;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // long expected
         0: .line 155
            new com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher
            dup
            aload 0 /* this */
            lload 1 /* expected */
            invokespecial com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher.<init>:(Lcom/oracle/truffle/nfi/test/NumericNFITest;J)V
            areturn
        end local 1 // long expected
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    1     1  expected  J
    Signature: (J)Lorg/hamcrest/Matcher<Ljava/lang/Object;>;
    MethodParameters:
          Name  Flags
      expected  

  static long unboxNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Object arg
         0: .line 159
            ldc "isNumber"
            getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* arg */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNumber:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         1: .line 160
            ldc "fitsInLong"
            getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* arg */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInLong:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         2: .line 162
            getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* arg */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asLong:(Ljava/lang/Object;)J
         3: lreturn
         4: .line 163
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 1 /* ex */
        start local 1 // com.oracle.truffle.api.interop.UnsupportedMessageException ex
         5: .line 164
            new java.lang.AssertionError
            dup
            aload 1 /* ex */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // com.oracle.truffle.api.interop.UnsupportedMessageException ex
        end local 0 // java.lang.Object arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   arg  Ljava/lang/Object;
            5    6     1    ex  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
      Name  Flags
      arg   

  public void testIncrement(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 180
            aload 1 /* callTarget */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* ret */
        start local 2 // java.lang.Object ret
         1: .line 181
            ldc "return"
            aload 2 /* ret */
            aload 0 /* this */
            ldc 43
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         2: .line 182
            return
        end local 2 // java.lang.Object ret
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    3     2         ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestIncrementNode;)
    MethodParameters:
            Name  Flags
      callTarget  

  private long fixSign(long);
    descriptor: (J)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // long nr
         0: .line 185
            invokestatic com.oracle.truffle.nfi.test.NumericNFITest.$SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType:()[I
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            iaload
            tableswitch { // 2 - 6
                    2: 1
                    3: 4
                    4: 2
                    5: 4
                    6: 3
              default: 4
          }
         1: .line 187
      StackMap locals:
      StackMap stack:
            lload 1 /* nr */
            ldc 255
            land
            lreturn
         2: .line 189
      StackMap locals:
      StackMap stack:
            lload 1 /* nr */
            ldc 65535
            land
            lreturn
         3: .line 191
      StackMap locals:
      StackMap stack:
            lload 1 /* nr */
            ldc 4294967295
            land
            lreturn
         4: .line 193
      StackMap locals:
      StackMap stack:
            lload 1 /* nr */
            lreturn
        end local 1 // long nr
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    5     1    nr  J
    MethodParameters:
      Name  Flags
      nr    

  public void testIncrementNeg(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 199
            aload 1 /* callTarget */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            ldc -5
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* ret */
        start local 2 // java.lang.Object ret
         1: .line 200
            ldc "return"
            aload 2 /* ret */
            aload 0 /* this */
            aload 0 /* this */
            ldc -4
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         2: .line 201
            return
        end local 2 // java.lang.Object ret
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    3     2         ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestIncrementNode;)
    MethodParameters:
            Name  Flags
      callTarget  

  public void testBoxed(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 210
            aload 1 /* callTarget */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.nfi.test.interop.BoxedPrimitive
            dup
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial com.oracle.truffle.nfi.test.interop.BoxedPrimitive.<init>:(Ljava/lang/Object;)V
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* ret */
        start local 2 // java.lang.Object ret
         1: .line 211
            ldc "return"
            aload 2 /* ret */
            aload 0 /* this */
            ldc 43
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         2: .line 212
            return
        end local 2 // java.lang.Object ret
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    3     2         ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestIncrementNode;)
    MethodParameters:
            Name  Flags
      callTarget  

  public void testCallback(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 232
            aload 1 /* callTarget */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.callback:Ljava/lang/Object;
            aastore
            dup
            iconst_1
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* ret */
        start local 2 // java.lang.Object ret
         1: .line 233
            ldc "return"
            aload 2 /* ret */
            aload 0 /* this */
            ldc 96
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         2: .line 234
            return
        end local 2 // java.lang.Object ret
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    3     2         ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestCallbackNode;)
    MethodParameters:
            Name  Flags
      callTarget  

  public void testCallbackNeg(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 243
            aload 1 /* callTarget */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.negCallback:Ljava/lang/Object;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            ldc -42
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* ret */
        start local 2 // java.lang.Object ret
         1: .line 244
            ldc "return"
            aload 2 /* ret */
            aload 0 /* this */
            aload 0 /* this */
            ldc -72
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         2: .line 245
            return
        end local 2 // java.lang.Object ret
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    3     2         ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestCallbackNode;)
    MethodParameters:
            Name  Flags
      callTarget  

  public void testCallbackRet(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 272
            aload 1 /* callTarget */
            iconst_0
            anewarray java.lang.Object
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* ret */
        start local 2 // java.lang.Object ret
         1: .line 273
            ldc "return"
            aload 2 /* ret */
            aload 0 /* this */
            ldc 43
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         2: .line 274
            return
        end local 2 // java.lang.Object ret
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    3     2         ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestCallbackRetNode;)
    MethodParameters:
            Name  Flags
      callTarget  

  private java.lang.String getPingPongSignature();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
         0: .line 277
            ldc "(%s):%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 1 /* fnPointer */
        start local 1 // java.lang.String fnPointer
         1: .line 278
            ldc "(env, %s):%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* fnPointer */
            aastore
            dup
            iconst_1
            aload 1 /* fnPointer */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* wrapPointer */
        start local 2 // java.lang.String wrapPointer
         2: .line 279
            ldc "(env, %s, %s) : %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* wrapPointer */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String wrapPointer
        end local 1 // java.lang.String fnPointer
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            1    3     1    fnPointer  Ljava/lang/String;
            2    3     2  wrapPointer  Ljava/lang/String;

  public void testPingPong(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 307
            aload 1 /* callTarget */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.test.NumericNFITest.wrap:Ljava/lang/Object;
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* ret */
        start local 2 // java.lang.Object ret
         1: .line 308
            ldc "return"
            aload 2 /* ret */
            aload 0 /* this */
            ldc 38
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         2: .line 309
            return
        end local 2 // java.lang.Object ret
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    3     2         ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestPingPongNode;)
    MethodParameters:
            Name  Flags
      callTarget  

  static int[] $SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 72
            getstatic com.oracle.truffle.nfi.test.NumericNFITest.$SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.values:()[Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.DOUBLE:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 11
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.FLOAT:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 10
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.NULLABLE:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 15
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.OBJECT:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 14
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.POINTER:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 12
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 9
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.STRING:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 13
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            iconst_4
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 6
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            bipush 8
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            iconst_2
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.VOID:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
            invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
            iconst_1
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            dup
            putstatic com.oracle.truffle.nfi.test.NumericNFITest.$SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError

  private java.lang.Object lambda$0(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // java.lang.Object[] args
         0: .line 226
            ldc "argument"
            aload 1 /* args */
            iconst_0
            aaload
            aload 0 /* this */
            ldc 43
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         1: .line 227
            aload 1 /* args */
            iconst_0
            aaload
            invokestatic com.oracle.truffle.nfi.test.NumericNFITest.unboxNumber:(Ljava/lang/Object;)J
            ldc 5
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 1 // java.lang.Object[] args
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    2     1  args  [Ljava/lang/Object;

  private java.lang.Object lambda$1(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // java.lang.Object[] args
         0: .line 237
            ldc "argument"
            aload 1 /* args */
            iconst_0
            aaload
            aload 0 /* this */
            aload 0 /* this */
            ldc -41
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         1: .line 238
            aload 1 /* args */
            iconst_0
            aaload
            invokestatic com.oracle.truffle.nfi.test.NumericNFITest.unboxNumber:(Ljava/lang/Object;)J
            ldc 5
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 1 // java.lang.Object[] args
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    2     1  args  [Ljava/lang/Object;

  private java.lang.Object lambda$2(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 1 // java.lang.Object[] args
         0: .line 293
            aload 1 /* args */
            iconst_0
            aaload
            astore 2 /* fn */
        start local 2 // java.lang.Object fn
         1: .line 294
            new com.oracle.truffle.nfi.test.interop.TestCallback
            dup
            iconst_1
            aload 0 /* this */
            aload 2 /* fn */
            invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;Ljava/lang/Object;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ([Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/nfi/test/NumericNFITest.lambda$3(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (7)
                  ([Ljava/lang/Object;)Ljava/lang/Object;
            invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
            astore 3 /* wrapped */
        start local 3 // java.lang.Object wrapped
         2: .line 302
            aload 3 /* wrapped */
            areturn
        end local 3 // java.lang.Object wrapped
        end local 2 // java.lang.Object fn
        end local 1 // java.lang.Object[] args
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    3     1     args  [Ljava/lang/Object;
            1    3     2       fn  Ljava/lang/Object;
            2    3     3  wrapped  Ljava/lang/Object;

  private java.lang.Object lambda$3(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=4, args_size=3
        start local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
        start local 2 // java.lang.Object[] innerArgs
         0: .line 295
            ldc "argument"
            aload 2 /* innerArgs */
            iconst_0
            aaload
            aload 0 /* this */
            ldc 6
            invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
            invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
            invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
         1: .line 297
            getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* innerArgs */
            iconst_0
            aaload
            invokestatic com.oracle.truffle.nfi.test.NumericNFITest.unboxNumber:(Ljava/lang/Object;)J
            ldc 3
            lmul
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
         3: .line 298
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.InteropException
            astore 3 /* ex */
        start local 3 // com.oracle.truffle.api.interop.InteropException ex
         4: .line 299
            new java.lang.AssertionError
            dup
            aload 3 /* ex */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // com.oracle.truffle.api.interop.InteropException ex
        end local 2 // java.lang.Object[] innerArgs
        end local 0 // com.oracle.truffle.nfi.test.NumericNFITest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/nfi/test/NumericNFITest;
            0    5     2  innerArgs  [Ljava/lang/Object;
            4    5     3         ex  Lcom/oracle/truffle/api/interop/InteropException;
      Exception table:
        from    to  target  type
           1     2       3  Class com.oracle.truffle.api.interop.InteropException
}
SourceFile: "NumericNFITest.java"
NestMembers:
  com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher  com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackNode  com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackRetNode  com.oracle.truffle.nfi.test.NumericNFITest$TestIncrementNode  com.oracle.truffle.nfi.test.NumericNFITest$TestPingPongNode
InnerClasses:
  final NumberMatcher = com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher of com.oracle.truffle.nfi.test.NumericNFITest
  public TestCallbackNode = com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackNode of com.oracle.truffle.nfi.test.NumericNFITest
  public TestCallbackRetNode = com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackRetNode of com.oracle.truffle.nfi.test.NumericNFITest
  public TestIncrementNode = com.oracle.truffle.nfi.test.NumericNFITest$TestIncrementNode of com.oracle.truffle.nfi.test.NumericNFITest
  public TestPingPongNode = com.oracle.truffle.nfi.test.NumericNFITest$TestPingPongNode of com.oracle.truffle.nfi.test.NumericNFITest
  public abstract Function = com.oracle.truffle.nfi.test.interop.TestCallback$Function of com.oracle.truffle.nfi.test.interop.TestCallback
  public abstract Inject = com.oracle.truffle.tck.TruffleRunner$Inject of com.oracle.truffle.tck.TruffleRunner
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  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
  public abstract UseParametersRunnerFactory = org.junit.runners.Parameterized$UseParametersRunnerFactory of org.junit.runners.Parameterized
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)
      org.junit.runners.Parameterized$UseParametersRunnerFactory(value = Lcom/oracle/truffle/tck/TruffleRunner$ParametersFactory;)