class org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions
  super_class: java.lang.Object
{
  static final org.graalvm.compiler.core.common.spi.ForeignCallDescriptor STUB_CALL;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 207
            ldc Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.$assertionsDisabled:Z
         3: .line 311
            new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
            dup
            ldc "stubCall"
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.STUB_CALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions this
         0: .line 207
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObjectSubstitutions;

  static double nextAfter(double, double);
    descriptor: (DD)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // double x
        start local 2 // double d
         0: .line 211
            dload 0 /* x */
            ldc -0.0
            dcmpl
            ifne 1
            dconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: dload 0 /* x */
      StackMap locals:
      StackMap stack: double
         2: dstore 4 /* xx */
        start local 4 // double xx
         3: .line 212
            dload 4 /* xx */
            dload 2 /* d */
            invokestatic java.lang.Math.nextAfter:(DD)D
            dreturn
        end local 4 // double xx
        end local 2 // double d
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     x  D
            0    4     2     d  D
            3    4     4    xx  D
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = true)
    MethodParameters:
      Name  Flags
      x     
      d     

  static java.lang.String stringize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 220
            aload 0 /* obj */
            ifnull 2
            aload 0 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/lang/String;
            if_acmpne 2
         1: .line 221
            aload 0 /* obj */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.asNonNullString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
         2: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.stringize:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution()
    MethodParameters:
      Name  Flags
      obj   

  static java.lang.String stringizeId(org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject);
    descriptor: (Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObject;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject thisObj
         0: .line 235
            aload 0 /* thisObj */
            getfield org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject.id:Ljava/lang/Object;
            ifnull 2
            aload 0 /* thisObj */
            getfield org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject.id:Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/lang/String;
            if_acmpne 2
         1: .line 236
            aload 0 /* thisObj */
            getfield org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject.id:Ljava/lang/Object;
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.asNonNullString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
         2: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* thisObj */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.outOfLinePartialIntrinsification:(Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObject;)Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  thisObj  Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObject;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = false)
    MethodParameters:
         Name  Flags
      thisObj  

  static java.lang.String outOfLinePartialIntrinsification(org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject);
    descriptor: (Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObject;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject thisObj
         0: .line 246
            aload 0 /* thisObj */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.stringizeId:(Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObject;)Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static java.lang.String asNonNullString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Object object
         0: .line 250
            aload 0 /* object */
            ldc Ljava/lang/String;
            iconst_1
            iconst_1
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.asNonNullStringIntrinsic:(Ljava/lang/Object;Ljava/lang/Class;ZZ)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  private static native java.lang.String asNonNullStringIntrinsic(, java.lang.Class<?>, boolean, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;ZZ)Ljava/lang/String;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;ZZ)Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/PiNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      2:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      3:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
           Name  Flags
      object     
      toType     
      exactType  
      nonNull    

  static int copyFirst(byte[], byte[], boolean);
    descriptor: ([B[BZ)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // byte[] left
        start local 1 // byte[] right
        start local 2 // boolean left2right
         0: .line 263
            aload 0 /* left */
            aload 1 /* right */
            iload 2 /* left2right */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest.copyFirstBody:([B[BZ)I
            ireturn
        end local 2 // boolean left2right
        end local 1 // byte[] right
        end local 0 // byte[] left
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        left  [B
            0    1     1       right  [B
            0    1     2  left2right  Z
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution()
    MethodParameters:
            Name  Flags
      left        
      right       
      left2right  

  static int copyFirstL2R(byte[], byte[]);
    descriptor: ([B[B)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // byte[] left
        start local 1 // byte[] right
         0: .line 272
            aload 0 /* left */
            aload 1 /* right */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest.copyFirstL2RBody:([B[B)I
            ireturn
        end local 1 // byte[] right
        end local 0 // byte[] left
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   left  [B
            0    1     1  right  [B
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution()
    MethodParameters:
       Name  Flags
      left   
      right  

  static java.lang.String identity(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String value
         0: .line 280
            invokedynamic apply()Ljava/util/function/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;
                  org/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObjectSubstitutions.lambda$0(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            aload 0 /* value */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.apply:(Ljava/util/function/Function;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution()
    MethodParameters:
       Name  Flags
      value  

  private static java.lang.String apply(java.util.function.Function<java.lang.String, java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/function/Function;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.function.Function f
        start local 1 // java.lang.String value
         0: .line 284
            aload 0 /* f */
            aload 1 /* value */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // java.lang.String value
        end local 0 // java.util.function.Function f
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      f  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/String;>;
            0    1     1  value  Ljava/lang/String;
    Signature: (Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      f      
      value  

  static int nonVoidIntrinsicWithCall(int, int);
    descriptor: (II)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 289
            iload 0 /* x */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.nonVoidIntrinsicWithCallStub:(I)V
         1: .line 290
            iload 1 /* y */
            ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  I
            0    2     1     y  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = true)
    MethodParameters:
      Name  Flags
      x     
      y     

  static int nonVoidIntrinsicWithOptimizedSplit(int);
    descriptor: (I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int x
         0: .line 295
            iload 0 /* x */
            iload 0 /* x */
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(I)I
            if_icmpne 2
         1: .line 296
            iload 0 /* x */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.nonVoidIntrinsicWithCallStub:(I)V
         2: .line 298
      StackMap locals:
      StackMap stack:
            iload 0 /* x */
            ireturn
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     x  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = true)
    MethodParameters:
      Name  Flags
      x     

  static int div(int, int);
    descriptor: (II)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 303
            getstatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.$assertionsDisabled:Z
            ifne 1
            iload 1 /* y */
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 304
      StackMap locals:
      StackMap stack:
            iload 0 /* x */
            iload 1 /* y */
            idiv
            ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  I
            0    2     1     y  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution()
    MethodParameters:
      Name  Flags
      x     
      y     

  public static void nonVoidIntrinsicWithCallStub(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int zLen
         0: .line 308
            getstatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.STUB_CALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            iload 0 /* zLen */
            invokestatic org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions.nonVoidIntrinsicWithCallStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;I)V
         1: .line 309
            return
        end local 0 // int zLen
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  zLen  I
    MethodParameters:
      Name  Flags
      zLen  

  private static native void nonVoidIntrinsicWithCallStub(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, int);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
    MethodParameters:
            Name  Flags
      descriptor  
      zLen        

  private static java.lang.String lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 280
            aload 0 /* s */
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;
}
SourceFile: "ReplacementsParseTest.java"
NestHost: org.graalvm.compiler.replacements.test.ReplacementsParseTest
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
  public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
  TestObject = org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObject of org.graalvm.compiler.replacements.test.ReplacementsParseTest
  TestObjectSubstitutions = org.graalvm.compiler.replacements.test.ReplacementsParseTest$TestObjectSubstitutions of org.graalvm.compiler.replacements.test.ReplacementsParseTest
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.ClassSubstitution(value = Lorg/graalvm/compiler/replacements/test/ReplacementsParseTest$TestObject;)