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

  static java.lang.Object doCached(com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj, long, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/dsl/test/SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj;JLcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=6, args_size=5
        start local 0 // com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj receiver
        start local 1 // long index
        start local 3 // com.oracle.truffle.api.profiles.BranchProfile branch1
        start local 4 // com.oracle.truffle.api.profiles.BranchProfile branch2
        start local 5 // com.oracle.truffle.api.profiles.BranchProfile branch3
         0: .line 159
            ldc "fast"
            areturn
        end local 5 // com.oracle.truffle.api.profiles.BranchProfile branch3
        end local 4 // com.oracle.truffle.api.profiles.BranchProfile branch2
        end local 3 // com.oracle.truffle.api.profiles.BranchProfile branch1
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/api/dsl/test/SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj;
            0    1     1     index  J
            0    1     3   branch1  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0    1     4   branch2  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0    1     5   branch3  Lcom/oracle/truffle/api/profiles/BranchProfile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"index == 0"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "branch1")
        com.oracle.truffle.api.dsl.Cached()
      3:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "branch2")
        com.oracle.truffle.api.dsl.Cached()
      4:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "branch3")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
          Name  Flags
      receiver  
      index     
      branch1   
      branch2   
      branch3   

  static java.lang.Object doGeneric(com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj, long, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/dsl/test/SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj;JLcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj receiver
        start local 1 // long index
        start local 3 // com.oracle.truffle.api.profiles.BranchProfile branch2
         0: .line 166
            aload 3 /* branch2 */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         1: .line 167
            ldc "generic"
            areturn
        end local 3 // com.oracle.truffle.api.profiles.BranchProfile branch2
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  receiver  Lcom/oracle/truffle/api/dsl/test/SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj;
            0    2     1     index  J
            0    2     3   branch2  Lcom/oracle/truffle/api/profiles/BranchProfile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(replaces = {"doCached"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "branch2")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
          Name  Flags
      receiver  
      index     
      branch2   
}
SourceFile: "SpecializationSlowPathOnlyModeTest.java"
NestHost: com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest
InnerClasses:
  public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached
  SpecializationTestingTruffleObj = com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj of com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest
  ReadArrayElement = com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj$ReadArrayElement of com.oracle.truffle.api.dsl.test.SpecializationSlowPathOnlyModeTest$SpecializationTestingTruffleObj
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
      com.oracle.truffle.api.dsl.test.AlwaysGenerateOnlySlowPath()