public class org.graalvm.compiler.replacements.test.StringSubstitutionTestBase extends org.graalvm.compiler.replacements.test.MethodSubstitutionTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.replacements.test.StringSubstitutionTestBase
  super_class: org.graalvm.compiler.replacements.test.MethodSubstitutionTest
{
  protected jdk.vm.ci.meta.ResolvedJavaMethod realMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0004) ACC_PROTECTED

  protected jdk.vm.ci.meta.ResolvedJavaMethod testMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0004) ACC_PROTECTED

  protected jdk.vm.ci.code.InstalledCode testCode;
    descriptor: Ljdk/vm/ci/code/InstalledCode;
    flags: (0x0004) ACC_PROTECTED

  protected final java.lang.String[] testData;
    descriptor: [Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
         0: .line 39
            aload 0 /* this */
            invokespecial org.graalvm.compiler.replacements.test.MethodSubstitutionTest.<init>:()V
         1: .line 41
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.realMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         2: .line 42
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         3: .line 43
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testCode:Ljdk/vm/ci/code/InstalledCode;
         4: .line 45
            aload 0 /* this */
            bipush 33
            anewarray java.lang.String
            dup
            iconst_0
         5: .line 46
            ldc "A"
            aastore
            dup
            iconst_1
            ldc "\uFF21"
            aastore
            dup
            iconst_2
            ldc "AB"
            aastore
            dup
            iconst_3
            ldc "A"
            aastore
            dup
            iconst_4
            ldc "a"
            aastore
            dup
            iconst_5
            ldc "Ab"
            aastore
            dup
            bipush 6
            ldc "AA"
            aastore
            dup
            bipush 7
            ldc "\uFF21"
            aastore
            dup
            bipush 8
         6: .line 47
            ldc "A\uFF21"
            aastore
            dup
            bipush 9
            ldc "ABC"
            aastore
            dup
            bipush 10
            ldc "AB"
            aastore
            dup
            bipush 11
            ldc "ABcD"
            aastore
            dup
            bipush 12
            ldc "ABCD\uFF21\uFF21"
            aastore
            dup
            bipush 13
            ldc "ABCD\uFF21"
            aastore
            dup
            bipush 14
            ldc "ABCDEFG\uFF21"
            aastore
            dup
            bipush 15
            ldc "ABCD"
            aastore
            dup
            bipush 16
         7: .line 48
            ldc "ABCDEFGH\uFF21\uFF21"
            aastore
            dup
            bipush 17
            ldc "\uFF22"
            aastore
            dup
            bipush 18
            ldc "\uFF21\uFF22"
            aastore
            dup
            bipush 19
            ldc "\uFF21A"
            aastore
            dup
            bipush 20
         8: .line 49
            ldc "\uFF21\uFF21"
            aastore
            dup
            bipush 21
         9: .line 50
            ldc "\u043C\u0430\u043C\u0430 \u043C\u044B\u043B\u0430 \u0440\u0430\u043C\u0443, \u0440\u0430\u043C\u0430 \u0441\u044A\u0435\u043B\u0430 \u043C\u0430\u043C\u0443"
            aastore
            dup
            bipush 22
        10: .line 51
            ldc "crazy dog jumps over laszy fox"
            aastore
            dup
            bipush 23
        11: .line 52
            ldc "some-string\u0000xff"
            aastore
            dup
            bipush 24
        12: .line 53
            ldc "XMM-XMM-YMM-YMM-ZMM-ZMM-ZMM-ZMM-"
            aastore
            dup
            bipush 25
        13: .line 54
            ldc "XMM-XMM+YMM-YMM-ZMM-ZMM-ZMM-ZMM-"
            aastore
            dup
            bipush 26
        14: .line 55
            ldc "XMM-XMM-YMM-YMM+ZMM-ZMM-ZMM-ZMM-"
            aastore
            dup
            bipush 27
        15: .line 56
            ldc "XMM-XMM-YMM-YMM-ZMM-ZMM-ZMM-ZMM+"
            aastore
            dup
            bipush 28
        16: .line 57
            ldc "XMM-XMM-XMM-XMM-YMM-YMM-YMM-YMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-"
            aastore
            dup
            bipush 29
        17: .line 58
            ldc "XMM-XMM-XMM-XMM+YMM-YMM-YMM-YMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-"
            aastore
            dup
            bipush 30
        18: .line 59
            ldc "XMM-XMM-XMM-XMM-YMM-YMM-YMM-YMM+ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-"
            aastore
            dup
            bipush 31
        19: .line 60
            ldc "XMM-XMM-XMM-XMM-YMM-YMM-YMM-YMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM-ZMM+"
            aastore
            dup
            bipush 32
        20: .line 61
            ldc ""
            aastore
            putfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testData:[Ljava/lang/String;
        21: .line 39
            return
        end local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lorg/graalvm/compiler/replacements/test/StringSubstitutionTestBase;

  protected void initSubstitution(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Class<?>);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
         0: .line 66
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tAssume cannot be resolved\n\tAssert cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/test/StringSubstitutionTestBase;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class<*>;)V
    MethodParameters:
               Name  Flags
      theRealMethod  
      theTestMethod  
      expectedNode   

  private void executeSubstitution(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
        start local 1 // java.lang.String s0
        start local 2 // java.lang.String s1
         0: .line 85
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.realMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 1 /* s0 */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* s1 */
            aastore
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.invokeSafe:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* expected */
        start local 3 // java.lang.Object expected
         1: .line 87
            aload 0 /* this */
            aload 3 /* expected */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aconst_null
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* s0 */
            aastore
            dup
            iconst_1
            aload 2 /* s1 */
            aastore
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.invokeSafe:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.assertDeepEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 89
            aload 0 /* this */
            aload 3 /* expected */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testCode:Ljdk/vm/ci/code/InstalledCode;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* s0 */
            aastore
            dup
            iconst_1
            aload 2 /* s1 */
            aastore
            invokestatic org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.executeVarargsSafe:(Ljdk/vm/ci/code/InstalledCode;[Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.assertDeepEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 90
            return
        end local 3 // java.lang.Object expected
        end local 2 // java.lang.String s1
        end local 1 // java.lang.String s0
        end local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/graalvm/compiler/replacements/test/StringSubstitutionTestBase;
            0    4     1        s0  Ljava/lang/String;
            0    4     2        s1  Ljava/lang/String;
            1    4     3  expected  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      s0    
      s1    

  protected void testEqualString();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
         0: .line 93
            ldc "equal-string"
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 94
            aload 0 /* this */
            aload 1 /* s */
            new java.lang.String
            dup
            aload 1 /* s */
            invokevirtual java.lang.String.toCharArray:()[C
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.executeSubstitution:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 95
            return
        end local 1 // java.lang.String s
        end local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/replacements/test/StringSubstitutionTestBase;
            1    3     1     s  Ljava/lang/String;

  protected void testDifferentString();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
         0: .line 99
            aload 0 /* this */
            ldc "AAAAAAAA"
            ldc ""
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.executeSubstitution:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 101
            aload 0 /* this */
            ldc "some-stringA"
            ldc "some-string\u0000xff"
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.executeSubstitution:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 103
            aload 0 /* this */
            ldc "\u2241AAAAAAAB"
            ldc "\u2241AAAAAAA\uFF41"
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.executeSubstitution:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 105
            aload 0 /* this */
            ldc "AAAAAAAAB"
            ldc "AAAAAAAA\uFF41"
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.executeSubstitution:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 106
            return
        end local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/replacements/test/StringSubstitutionTestBase;

  protected void testAllStrings();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
         0: .line 109
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testData:[Ljava/lang/String;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 14
      StackMap locals: org.graalvm.compiler.replacements.test.StringSubstitutionTestBase top int int java.lang.String[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* s0 */
        start local 1 // java.lang.String s0
         2: .line 110
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testData:[Ljava/lang/String;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 12
      StackMap locals: org.graalvm.compiler.replacements.test.StringSubstitutionTestBase java.lang.String int int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* s1 */
        start local 5 // java.lang.String s1
         4: .line 112
            aload 0 /* this */
            aload 1 /* s0 */
            aload 5 /* s1 */
            invokevirtual org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.executeSubstitution:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 113
            goto 11
      StackMap locals: org.graalvm.compiler.replacements.test.StringSubstitutionTestBase java.lang.String int int java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack: java.lang.AssertionError
         6: astore 9 /* ex */
        start local 9 // java.lang.AssertionError ex
         7: .line 114
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "FAIL: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 115
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " ***: s0 '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s0 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 116
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " ***: s1 '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* s1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 117
            aload 9 /* ex */
            athrow
        end local 9 // java.lang.AssertionError ex
        end local 5 // java.lang.String s1
        11: .line 110
      StackMap locals: org.graalvm.compiler.replacements.test.StringSubstitutionTestBase java.lang.String int int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        12: iload 6
            iload 7
            if_icmplt 3
        end local 1 // java.lang.String s0
        13: .line 109
            iinc 2 1
      StackMap locals: org.graalvm.compiler.replacements.test.StringSubstitutionTestBase top int int java.lang.String[]
      StackMap stack:
        14: iload 2
            iload 3
            if_icmplt 1
        15: .line 121
            return
        end local 0 // org.graalvm.compiler.replacements.test.StringSubstitutionTestBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/graalvm/compiler/replacements/test/StringSubstitutionTestBase;
            2   13     1    s0  Ljava/lang/String;
            4   11     5    s1  Ljava/lang/String;
            7   11     9    ex  Ljava/lang/AssertionError;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.AssertionError
}
SourceFile: "StringSubstitutionTestBase.java"