abstract class jdk.jshell.Key
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.jshell.Key
  super_class: java.lang.Object
{
  private final int index;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.jshell.JShell state;
    descriptor: Ljdk/jshell/JShell;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(jdk.jshell.JShell);
    descriptor: (Ljdk/jshell/JShell;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.Key this
        start local 1 // jdk.jshell.JShell state
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual jdk.jshell.JShell.nextKeyIndex:()I
            putfield jdk.jshell.Key.index:I
         2: .line 51
            aload 0 /* this */
            aload 1 /* state */
            putfield jdk.jshell.Key.state:Ljdk/jshell/JShell;
         3: .line 52
            return
        end local 1 // jdk.jshell.JShell state
        end local 0 // jdk.jshell.Key this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljdk/jshell/Key;
            0    4     1  state  Ljdk/jshell/JShell;
    MethodParameters:
       Name  Flags
      state  

  int index();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.Key this
         0: .line 61
            aload 0 /* this */
            getfield jdk.jshell.Key.index:I
            ireturn
        end local 0 // jdk.jshell.Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/Key;

  abstract jdk.jshell.Snippet$Kind kind();
    descriptor: ()Ljdk/jshell/Snippet$Kind;
    flags: (0x0400) ACC_ABSTRACT

  jdk.jshell.JShell state();
    descriptor: ()Ljdk/jshell/JShell;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.Key this
         0: .line 72
            aload 0 /* this */
            getfield jdk.jshell.Key.state:Ljdk/jshell/JShell;
            areturn
        end local 0 // jdk.jshell.Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/Key;
}
SourceFile: "Key.java"
NestMembers:
  jdk.jshell.Key$DeclarationKey  jdk.jshell.Key$ErroneousKey  jdk.jshell.Key$ExpressionKey  jdk.jshell.Key$ImportKey  jdk.jshell.Key$MethodKey  jdk.jshell.Key$PersistentKey  jdk.jshell.Key$StatementKey  jdk.jshell.Key$TypeDeclKey  jdk.jshell.Key$UniqueKey  jdk.jshell.Key$VarKey
InnerClasses:
  abstract DeclarationKey = jdk.jshell.Key$DeclarationKey of jdk.jshell.Key
  ErroneousKey = jdk.jshell.Key$ErroneousKey of jdk.jshell.Key
  ExpressionKey = jdk.jshell.Key$ExpressionKey of jdk.jshell.Key
  ImportKey = jdk.jshell.Key$ImportKey of jdk.jshell.Key
  MethodKey = jdk.jshell.Key$MethodKey of jdk.jshell.Key
  abstract PersistentKey = jdk.jshell.Key$PersistentKey of jdk.jshell.Key
  StatementKey = jdk.jshell.Key$StatementKey of jdk.jshell.Key
  TypeDeclKey = jdk.jshell.Key$TypeDeclKey of jdk.jshell.Key
  abstract UniqueKey = jdk.jshell.Key$UniqueKey of jdk.jshell.Key
  VarKey = jdk.jshell.Key$VarKey of jdk.jshell.Key
  public final Kind = jdk.jshell.Snippet$Kind of jdk.jshell.Snippet