class jdk.internal.jshell.tool.JShellTool$Options
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.jshell.tool.JShellTool$Options
  super_class: java.lang.Object
{
  private final java.util.Map<jdk.internal.jshell.tool.JShellTool$OptionKind, java.util.List<java.lang.String>> optMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
         0: .line 273
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 274
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.internal.jshell.tool.JShellTool$Options.optMap:Ljava/util/Map;
         2: .line 275
            return
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jshell/tool/JShellTool$Options;

  private void <init>(jdk.internal.jshell.tool.JShellTool$Options);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool$Options;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
        start local 1 // jdk.internal.jshell.tool.JShellTool$Options opts
         0: .line 278
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 279
            aload 0 /* this */
            new java.util.HashMap
            dup
            aload 1 /* opts */
            getfield jdk.internal.jshell.tool.JShellTool$Options.optMap:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            putfield jdk.internal.jshell.tool.JShellTool$Options.optMap:Ljava/util/Map;
         2: .line 280
            return
        end local 1 // jdk.internal.jshell.tool.JShellTool$Options opts
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jshell/tool/JShellTool$Options;
            0    3     1  opts  Ljdk/internal/jshell/tool/JShellTool$Options;
    MethodParameters:
      Name  Flags
      opts  

  private java.lang.String[] selectOptions(java.util.function.Predicate<java.util.Map$Entry<jdk.internal.jshell.tool.JShellTool$OptionKind, java.util.List<java.lang.String>>>);
    descriptor: (Ljava/util/function/Predicate;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
        start local 1 // java.util.function.Predicate pred
         0: .line 283
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$Options.optMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 284
            aload 1 /* pred */
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 285
            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;
                  jdk/internal/jshell/tool/JShellTool$Options.lambda$0(Ljava/util/Map$Entry;)Ljava/util/stream/Stream; (6)
                  (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 286
            invokedynamic apply()Ljava/util/function/IntFunction;
              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:
                  (I)Ljava/lang/Object;
                  jdk/internal/jshell/tool/JShellTool$Options.lambda$1(I)[Ljava/lang/String; (6)
                  (I)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast java.lang.String[]
         4: .line 283
            areturn
        end local 1 // java.util.function.Predicate pred
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/internal/jshell/tool/JShellTool$Options;
            0    5     1  pred  Ljava/util/function/Predicate<Ljava/util/Map$Entry<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;>;
    Signature: (Ljava/util/function/Predicate<Ljava/util/Map$Entry<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;>;)[Ljava/lang/String;
    MethodParameters:
      Name  Flags
      pred  

  java.lang.String[] remoteVmOptions();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
         0: .line 290
            aload 0 /* this */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/internal/jshell/tool/JShellTool$Options.lambda$2(Ljava/util/Map$Entry;)Z (6)
                  (Ljava/util/Map$Entry;)Z
            invokevirtual jdk.internal.jshell.tool.JShellTool$Options.selectOptions:(Ljava/util/function/Predicate;)[Ljava/lang/String;
            areturn
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/JShellTool$Options;

  java.lang.String[] compilerOptions();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
         0: .line 294
            aload 0 /* this */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/internal/jshell/tool/JShellTool$Options.lambda$3(Ljava/util/Map$Entry;)Z (6)
                  (Ljava/util/Map$Entry;)Z
            invokevirtual jdk.internal.jshell.tool.JShellTool$Options.selectOptions:(Ljava/util/function/Predicate;)[Ljava/lang/String;
            areturn
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/JShellTool$Options;

  java.lang.String[] commonOptions();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
         0: .line 298
            aload 0 /* this */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/internal/jshell/tool/JShellTool$Options.lambda$4(Ljava/util/Map$Entry;)Z (6)
                  (Ljava/util/Map$Entry;)Z
            invokevirtual jdk.internal.jshell.tool.JShellTool$Options.selectOptions:(Ljava/util/function/Predicate;)[Ljava/lang/String;
            areturn
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/JShellTool$Options;

  void addAll(jdk.internal.jshell.tool.JShellTool$OptionKind, java.util.Collection<java.lang.String>);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
        start local 1 // jdk.internal.jshell.tool.JShellTool$OptionKind kind
        start local 2 // java.util.Collection vals
         0: .line 302
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$Options.optMap:Ljava/util/Map;
            aload 1 /* kind */
            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;
                  jdk/internal/jshell/tool/JShellTool$Options.lambda$5(Ljdk/internal/jshell/tool/JShellTool$OptionKind;)Ljava/util/List; (6)
                  (Ljdk/internal/jshell/tool/JShellTool$OptionKind;)Ljava/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.List
         1: .line 303
            aload 2 /* vals */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 304
            return
        end local 2 // java.util.Collection vals
        end local 1 // jdk.internal.jshell.tool.JShellTool$OptionKind kind
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jshell/tool/JShellTool$Options;
            0    3     1  kind  Ljdk/internal/jshell/tool/JShellTool$OptionKind;
            0    3     2  vals  Ljava/util/Collection<Ljava/lang/String;>;
    Signature: (Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      kind  
      vals  

  jdk.internal.jshell.tool.JShellTool$Options override(jdk.internal.jshell.tool.JShellTool$Options);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool$Options;)Ljdk/internal/jshell/tool/JShellTool$Options;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellTool$Options this
        start local 1 // jdk.internal.jshell.tool.JShellTool$Options newer
         0: .line 308
            new jdk.internal.jshell.tool.JShellTool$Options
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.JShellTool$Options.<init>:(Ljdk/internal/jshell/tool/JShellTool$Options;)V
            astore 2 /* result */
        start local 2 // jdk.internal.jshell.tool.JShellTool$Options result
         1: .line 309
            aload 1 /* newer */
            getfield jdk.internal.jshell.tool.JShellTool$Options.optMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 310
            aload 2 /* result */
            invokedynamic accept(Ljdk/internal/jshell/tool/JShellTool$Options;)Ljava/util/function/Consumer;
              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;)V
                  jdk/internal/jshell/tool/JShellTool$Options.lambda$6(Ljdk/internal/jshell/tool/JShellTool$Options;Ljava/util/Map$Entry;)V (6)
                  (Ljava/util/Map$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 319
            aload 2 /* result */
            areturn
        end local 2 // jdk.internal.jshell.tool.JShellTool$Options result
        end local 1 // jdk.internal.jshell.tool.JShellTool$Options newer
        end local 0 // jdk.internal.jshell.tool.JShellTool$Options this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/internal/jshell/tool/JShellTool$Options;
            0    4     1   newer  Ljdk/internal/jshell/tool/JShellTool$Options;
            1    4     2  result  Ljdk/internal/jshell/tool/JShellTool$Options;
    MethodParameters:
       Name  Flags
      newer  

  private static java.util.stream.Stream lambda$0(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 285
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            areturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/Map$Entry<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;

  private static java.lang.String[] lambda$1(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray java.lang.String
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$2(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 290
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.JShellTool$OptionKind
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.toRemoteVm:Z
            ireturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/Map$Entry<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;

  private static boolean lambda$3(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 294
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.JShellTool$OptionKind
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.toCompiler:Z
            ireturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/Map$Entry<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;

  private static boolean lambda$4(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 298
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.JShellTool$OptionKind
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.passFlag:Z
            ireturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/Map$Entry<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;

  private static java.util.List lambda$5(jdk.internal.jshell.tool.JShellTool$OptionKind);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool$OptionKind;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionKind k
         0: .line 302
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionKind k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     k  Ljdk/internal/jshell/tool/JShellTool$OptionKind;

  private static void lambda$6(jdk.internal.jshell.tool.JShellTool$Options, java.util.Map$Entry);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool$Options;Ljava/util/Map$Entry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.util.Map$Entry e
         0: .line 311
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.JShellTool$OptionKind
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.onlyOne:Z
            ifeq 3
         1: .line 313
            aload 0
            getfield jdk.internal.jshell.tool.JShellTool$Options.optMap:Ljava/util/Map;
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.JShellTool$OptionKind
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 314
            goto 4
         3: .line 316
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.JShellTool$OptionKind
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokevirtual jdk.internal.jshell.tool.JShellTool$Options.addAll:(Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection;)V
         4: .line 318
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     1     e  Ljava/util/Map$Entry<Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/List<Ljava/lang/String;>;>;
}
SourceFile: "JShellTool.java"
NestHost: jdk.internal.jshell.tool.JShellTool
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private final OptionKind = jdk.internal.jshell.tool.JShellTool$OptionKind of jdk.internal.jshell.tool.JShellTool
  private Options = jdk.internal.jshell.tool.JShellTool$Options of jdk.internal.jshell.tool.JShellTool