abstract class com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  super_class: java.lang.Object
{
  public static final java.lang.String UNAVAILABLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "<unavailable>"

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

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

  private final boolean isBuggy;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static java.lang.String getActualType(com.oracle.truffle.api.debug.DebugValue);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugValue;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugValue value
         0: .line 46
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.debug.DebugValue.getMetaObject:()Lcom/oracle/truffle/api/debug/DebugValue;
            astore 1 /* typeValue */
        start local 1 // com.oracle.truffle.api.debug.DebugValue typeValue
         1: .line 47
            aload 1 /* typeValue */
            ifnull 2
            aload 1 /* typeValue */
            invokevirtual com.oracle.truffle.api.debug.DebugValue.getMetaQualifiedName:()Ljava/lang/String;
            goto 3
      StackMap locals: com.oracle.truffle.api.debug.DebugValue
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // com.oracle.truffle.api.debug.DebugValue typeValue
        end local 0 // com.oracle.truffle.api.debug.DebugValue value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0      value  Lcom/oracle/truffle/api/debug/DebugValue;
            1    4     1  typeValue  Lcom/oracle/truffle/api/debug/DebugValue;
    MethodParameters:
       Name  Flags
      value  

  private void <init>(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
        start local 1 // java.lang.String kind
        start local 2 // java.lang.String expectedType
        start local 3 // boolean isBuggy
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 57
            aload 0 /* this */
            aload 1 /* kind */
            putfield com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.kind:Ljava/lang/String;
         2: .line 58
            aload 0 /* this */
            aload 2 /* expectedType */
            putfield com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.expectedType:Ljava/lang/String;
         3: .line 59
            aload 0 /* this */
            iload 3 /* isBuggy */
            putfield com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.isBuggy:Z
         4: .line 60
            return
        end local 3 // boolean isBuggy
        end local 2 // java.lang.String expectedType
        end local 1 // java.lang.String kind
        end local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/truffle/llvm/tests/debug/LLVMDebugValue;
            0    5     1          kind  Ljava/lang/String;
            0    5     2  expectedType  Ljava/lang/String;
            0    5     3       isBuggy  Z
    MethodParameters:
              Name  Flags
      kind          
      expectedType  
      isBuggy       

  java.lang.String getKind();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
         0: .line 63
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.kind:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/tests/debug/LLVMDebugValue;

  java.lang.String getExpectedType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
         0: .line 67
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.expectedType:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/tests/debug/LLVMDebugValue;

  boolean isBuggy();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
         0: .line 71
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.isBuggy:Z
            ireturn
        end local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/tests/debug/LLVMDebugValue;

  void checkType(com.oracle.truffle.api.debug.DebugValue);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugValue;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
        start local 1 // com.oracle.truffle.api.debug.DebugValue value
         0: .line 75
            aload 1 /* value */
            invokestatic com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.getActualType:(Lcom/oracle/truffle/api/debug/DebugValue;)Ljava/lang/String;
            astore 2 /* actualType */
        start local 2 // java.lang.String actualType
         1: .line 76
            ldc "Unexpected type!"
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.expectedType:Ljava/lang/String;
            aload 2 /* actualType */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 77
            return
        end local 2 // java.lang.String actualType
        end local 1 // com.oracle.truffle.api.debug.DebugValue value
        end local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/llvm/tests/debug/LLVMDebugValue;
            0    3     1       value  Lcom/oracle/truffle/api/debug/DebugValue;
            1    3     2  actualType  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  

  void check(com.oracle.truffle.api.debug.DebugValue);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugValue;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
        start local 1 // com.oracle.truffle.api.debug.DebugValue actualValue
         0: .line 80
            aload 0 /* this */
            aload 1 /* actualValue */
            invokevirtual com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.checkType:(Lcom/oracle/truffle/api/debug/DebugValue;)V
         1: .line 81
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.isBuggy:()Z
            ifne 3
         2: .line 82
            aload 0 /* this */
            aload 1 /* actualValue */
            invokevirtual com.oracle.truffle.llvm.tests.debug.LLVMDebugValue.checkValue:(Lcom/oracle/truffle/api/debug/DebugValue;)V
         3: .line 84
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.debug.DebugValue actualValue
        end local 0 // com.oracle.truffle.llvm.tests.debug.LLVMDebugValue this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/llvm/tests/debug/LLVMDebugValue;
            0    4     1  actualValue  Lcom/oracle/truffle/api/debug/DebugValue;
    MethodParameters:
             Name  Flags
      actualValue  

  abstract java.lang.String getExpectedDisplayValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0400) ACC_ABSTRACT

  abstract void checkValue(com.oracle.truffle.api.debug.DebugValue);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugValue;)V
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "LLVMDebugValue.java"
NestMembers:
  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Address  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Any  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Char  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Exact  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Float_32  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Float_64  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Int  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Structured  com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Unavailable
InnerClasses:
  final Address = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Address of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Any = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Any of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Char = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Char of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Exact = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Exact of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Float_32 = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Float_32 of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Float_64 = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Float_64 of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Int = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Int of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Structured = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Structured of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue
  final Unavailable = com.oracle.truffle.llvm.tests.debug.LLVMDebugValue$Unavailable of com.oracle.truffle.llvm.tests.debug.LLVMDebugValue