class jdk.internal.jshell.tool.JShellTool$OptionParserBase
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.jshell.tool.JShellTool$OptionParserBase
  super_class: java.lang.Object
{
  final jdk.internal.joptsimple.OptionParser parser;
    descriptor: Ljdk/internal/joptsimple/OptionParser;
    flags: (0x0010) ACC_FINAL

  private final jdk.internal.joptsimple.OptionSpec<java.lang.String> argClassPath;
    descriptor: Ljdk/internal/joptsimple/OptionSpec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/joptsimple/OptionSpec<Ljava/lang/String;>;

  private final jdk.internal.joptsimple.OptionSpec<java.lang.String> argModulePath;
    descriptor: Ljdk/internal/joptsimple/OptionSpec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/joptsimple/OptionSpec<Ljava/lang/String;>;

  private final jdk.internal.joptsimple.OptionSpec<java.lang.String> argAddModules;
    descriptor: Ljdk/internal/joptsimple/OptionSpec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/joptsimple/OptionSpec<Ljava/lang/String;>;

  private final jdk.internal.joptsimple.OptionSpec<java.lang.String> argAddExports;
    descriptor: Ljdk/internal/joptsimple/OptionSpec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/joptsimple/OptionSpec<Ljava/lang/String;>;

  private final jdk.internal.joptsimple.NonOptionArgumentSpec<java.lang.String> argNonOptions;
    descriptor: Ljdk/internal/joptsimple/NonOptionArgumentSpec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/joptsimple/NonOptionArgumentSpec<Ljava/lang/String;>;

  private jdk.internal.jshell.tool.JShellTool$Options opts;
    descriptor: Ljdk/internal/jshell/tool/JShellTool$Options;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<java.lang.String> nonOptions;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private boolean failed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  final jdk.internal.jshell.tool.JShellTool this$0;
    descriptor: Ljdk/internal/jshell/tool/JShellTool;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(jdk.internal.jshell.tool.JShellTool);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
         0: .line 343
            aload 0 /* this */
            aload 1
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.this$0:Ljdk/internal/jshell/tool/JShellTool;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 345
            aload 0 /* this */
            new jdk.internal.joptsimple.OptionParser
            dup
            invokespecial jdk.internal.joptsimple.OptionParser.<init>:()V
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
         2: .line 346
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
            ldc "class-path"
            invokevirtual jdk.internal.joptsimple.OptionParser.accepts:(Ljava/lang/String;)Ljdk/internal/joptsimple/OptionSpecBuilder;
            invokevirtual jdk.internal.joptsimple.OptionSpecBuilder.withRequiredArg:()Ljdk/internal/joptsimple/ArgumentAcceptingOptionSpec;
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argClassPath:Ljdk/internal/joptsimple/OptionSpec;
         3: .line 347
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
            ldc "module-path"
            invokevirtual jdk.internal.joptsimple.OptionParser.accepts:(Ljava/lang/String;)Ljdk/internal/joptsimple/OptionSpecBuilder;
            invokevirtual jdk.internal.joptsimple.OptionSpecBuilder.withRequiredArg:()Ljdk/internal/joptsimple/ArgumentAcceptingOptionSpec;
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argModulePath:Ljdk/internal/joptsimple/OptionSpec;
         4: .line 348
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
            ldc "add-modules"
            invokevirtual jdk.internal.joptsimple.OptionParser.accepts:(Ljava/lang/String;)Ljdk/internal/joptsimple/OptionSpecBuilder;
            invokevirtual jdk.internal.joptsimple.OptionSpecBuilder.withRequiredArg:()Ljdk/internal/joptsimple/ArgumentAcceptingOptionSpec;
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argAddModules:Ljdk/internal/joptsimple/OptionSpec;
         5: .line 349
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
            ldc "add-exports"
            invokevirtual jdk.internal.joptsimple.OptionParser.accepts:(Ljava/lang/String;)Ljdk/internal/joptsimple/OptionSpecBuilder;
            invokevirtual jdk.internal.joptsimple.OptionSpecBuilder.withRequiredArg:()Ljdk/internal/joptsimple/ArgumentAcceptingOptionSpec;
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argAddExports:Ljdk/internal/joptsimple/OptionSpec;
         6: .line 350
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
            invokevirtual jdk.internal.joptsimple.OptionParser.nonOptions:()Ljdk/internal/joptsimple/NonOptionArgumentSpec;
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argNonOptions:Ljdk/internal/joptsimple/NonOptionArgumentSpec;
         7: .line 352
            aload 0 /* this */
            new jdk.internal.jshell.tool.JShellTool$Options
            dup
            invokespecial jdk.internal.jshell.tool.JShellTool$Options.<init>:()V
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.opts:Ljdk/internal/jshell/tool/JShellTool$Options;
         8: .line 354
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.failed:Z
         9: .line 343
            return
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
    MethodParameters:
        Name  Flags
      this$0  final

  java.util.List<java.lang.String> nonOptions();
    descriptor: ()Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
         0: .line 357
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.nonOptions:Ljava/util/List;
            areturn
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  void msg(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0080) ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object[] args
         0: .line 361
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.this$0:Ljdk/internal/jshell/tool/JShellTool;
            aload 1 /* key */
            aload 2 /* args */
            invokevirtual jdk.internal.jshell.tool.JShellTool.errormsg:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 362
            return
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String key
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0    2     1   key  Ljava/lang/String;
            0    2     2  args  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   
      args  

  jdk.internal.jshell.tool.JShellTool$Options parse(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljdk/internal/jshell/tool/JShellTool$Options;
    flags: (0x0000) 
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 1 // java.lang.String[] args
         0: .line 366
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
            aload 1 /* args */
            invokevirtual jdk.internal.joptsimple.OptionParser.parse:([Ljava/lang/String;)Ljdk/internal/joptsimple/OptionSet;
            astore 2 /* oset */
        start local 2 // jdk.internal.joptsimple.OptionSet oset
         1: .line 367
            aload 0 /* this */
            aload 2 /* oset */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argNonOptions:Ljdk/internal/joptsimple/NonOptionArgumentSpec;
            invokevirtual jdk.internal.joptsimple.OptionSet.valuesOf:(Ljdk/internal/joptsimple/OptionSpec;)Ljava/util/List;
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.nonOptions:Ljava/util/List;
         2: .line 368
            aload 0 /* this */
            aload 2 /* oset */
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.parse:(Ljdk/internal/joptsimple/OptionSet;)Ljdk/internal/jshell/tool/JShellTool$Options;
         3: areturn
        end local 2 // jdk.internal.joptsimple.OptionSet oset
         4: .line 369
      StackMap locals:
      StackMap stack: jdk.internal.joptsimple.OptionException
            astore 2 /* ex */
        start local 2 // jdk.internal.joptsimple.OptionException ex
         5: .line 370
            aload 2 /* ex */
            invokevirtual jdk.internal.joptsimple.OptionException.options:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 8
         6: .line 371
            aload 0 /* this */
            ldc "jshell.err.opt.invalid"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* args */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.msg:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 372
            goto 17
         8: .line 373
      StackMap locals: jdk.internal.joptsimple.OptionException
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.parser:Ljdk/internal/joptsimple/OptionParser;
            invokevirtual jdk.internal.joptsimple.OptionParser.recognizedOptions:()Ljava/util/Map;
            aload 2 /* ex */
            invokevirtual jdk.internal.joptsimple.OptionException.options:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            istore 3 /* isKnown */
        start local 3 // boolean isKnown
         9: .line 374
            aload 0 /* this */
            iload 3 /* isKnown */
            ifeq 11
        10: .line 375
            ldc "jshell.err.opt.arg"
            goto 12
        11: .line 376
      StackMap locals: jdk.internal.jshell.tool.JShellTool$OptionParserBase java.lang.String[] jdk.internal.joptsimple.OptionException int
      StackMap stack: jdk.internal.jshell.tool.JShellTool$OptionParserBase
            ldc "jshell.err.opt.unknown"
      StackMap locals: jdk.internal.jshell.tool.JShellTool$OptionParserBase java.lang.String[] jdk.internal.joptsimple.OptionException int
      StackMap stack: jdk.internal.jshell.tool.JShellTool$OptionParserBase java.lang.String
        12: iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 377
            aload 2 /* ex */
            invokevirtual jdk.internal.joptsimple.OptionException.options:()Ljava/util/Collection;
        14: .line 378
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
        15: .line 379
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
        16: .line 374
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.msg:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 3 // boolean isKnown
        17: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.this$0:Ljdk/internal/jshell/tool/JShellTool;
            iconst_1
            putfield jdk.internal.jshell.tool.JShellTool.exitCode:I
        18: .line 382
            aconst_null
            areturn
        end local 2 // jdk.internal.joptsimple.OptionException ex
        end local 1 // java.lang.String[] args
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0   19     1     args  [Ljava/lang/String;
            1    4     2     oset  Ljdk/internal/joptsimple/OptionSet;
            5   19     2       ex  Ljdk/internal/joptsimple/OptionException;
            9   17     3  isKnown  Z
      Exception table:
        from    to  target  type
           0     3       4  Class jdk.internal.joptsimple.OptionException
    Exceptions:
      throws jdk.internal.joptsimple.OptionException
    MethodParameters:
      Name  Flags
      args  

  private java.util.Collection<java.lang.String> validPaths(java.util.Collection<java.lang.String>, java.lang.String, boolean);
    descriptor: (Ljava/util/Collection;Ljava/lang/String;Z)Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 1 // java.util.Collection vals
        start local 2 // java.lang.String context
        start local 3 // boolean isModulePath
         0: .line 389
            aload 1 /* vals */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         1: .line 390
            aload 0 /* this */
            aload 2 /* context */
            iload 3 /* isModulePath */
            invokedynamic apply(Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;Ljava/lang/String;Z)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$OptionParserBase.lambda$0(Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String; (7)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 389
            astore 4 /* result */
        start local 4 // java.util.stream.Stream result
         3: .line 395
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.failed:Z
            ifeq 5
         4: .line 396
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         5: .line 398
      StackMap locals: java.util.stream.Stream
      StackMap stack:
            aload 4 /* result */
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Collection
            areturn
        end local 4 // java.util.stream.Stream result
        end local 3 // boolean isModulePath
        end local 2 // java.lang.String context
        end local 1 // java.util.Collection vals
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0    6     1          vals  Ljava/util/Collection<Ljava/lang/String;>;
            0    6     2       context  Ljava/lang/String;
            0    6     3  isModulePath  Z
            3    6     4        result  Ljava/util/stream/Stream<Ljava/lang/String;>;
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;Ljava/lang/String;Z)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
              Name  Flags
      vals          
      context       
      isModulePath  

  private boolean checkValidPathEntry(java.nio.file.Path, java.lang.String, boolean);
    descriptor: (Ljava/nio/file/Path;Ljava/lang/String;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 1 // java.nio.file.Path p
        start local 2 // java.lang.String context
        start local 3 // boolean isModulePath
         0: .line 404
            aload 1 /* p */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 4
         1: .line 405
            aload 0 /* this */
            ldc "jshell.err.file.not.found"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* context */
            aastore
            dup
            iconst_1
            aload 1 /* p */
            aastore
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.msg:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 406
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.failed:Z
         3: .line 407
            iconst_0
            ireturn
         4: .line 409
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 6
         5: .line 411
            iconst_1
            ireturn
         6: .line 414
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         7: .line 415
            aload 4 /* name */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 5 /* lastDot */
        start local 5 // int lastDot
         8: .line 416
            iload 5 /* lastDot */
            ifle 15
         9: .line 417
            aload 4 /* name */
            iload 5 /* lastDot */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            dup
            astore 6
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
              1475373: 10
             45748102: 11
              default: 15
          }
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
        10: aload 6
            ldc ".jar"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 15
      StackMap locals:
      StackMap stack:
        11: aload 6
            ldc ".jmod"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 15
        12: .line 419
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        13: .line 421
      StackMap locals:
      StackMap stack:
            iload 3 /* isModulePath */
            ifeq 15
        14: .line 422
            iconst_1
            ireturn
        15: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "jshell.err.arg"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* context */
            aastore
            dup
            iconst_1
            aload 1 /* p */
            aastore
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.msg:(Ljava/lang/String;[Ljava/lang/Object;)V
        16: .line 427
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.failed:Z
        17: .line 428
            iconst_0
            ireturn
        end local 5 // int lastDot
        end local 4 // java.lang.String name
        end local 3 // boolean isModulePath
        end local 2 // java.lang.String context
        end local 1 // java.nio.file.Path p
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0   18     1             p  Ljava/nio/file/Path;
            0   18     2       context  Ljava/lang/String;
            0   18     3  isModulePath  Z
            7   18     4          name  Ljava/lang/String;
            8   18     5       lastDot  I
    MethodParameters:
              Name  Flags
      p             
      context       
      isModulePath  

  private java.util.stream.Stream<java.nio.file.Path> toPathImpl(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 1 // java.lang.String path
        start local 2 // java.lang.String context
         0: .line 433
            aload 1 /* path */
            invokestatic jdk.internal.jshell.tool.JShellTool.toPathResolvingUserHome:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
         1: areturn
         2: .line 434
      StackMap locals:
      StackMap stack: java.nio.file.InvalidPathException
            pop
         3: .line 435
            aload 0 /* this */
            ldc "jshell.err.file.not.found"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* context */
            aastore
            dup
            iconst_1
            aload 1 /* path */
            aastore
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.msg:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 436
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.failed:Z
         5: .line 437
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            areturn
        end local 2 // java.lang.String context
        end local 1 // java.lang.String path
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0    6     1     path  Ljava/lang/String;
            0    6     2  context  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.nio.file.InvalidPathException
    Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/stream/Stream<Ljava/nio/file/Path;>;
    MethodParameters:
         Name  Flags
      path     
      context  

  jdk.internal.jshell.tool.JShellTool$Options parse(jdk.internal.joptsimple.OptionSet);
    descriptor: (Ljdk/internal/joptsimple/OptionSet;)Ljdk/internal/jshell/tool/JShellTool$Options;
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 1 // jdk.internal.joptsimple.OptionSet options
         0: .line 442
            aload 0 /* this */
            getstatic jdk.internal.jshell.tool.JShellTool$OptionKind.CLASS_PATH:Ljdk/internal/jshell/tool/JShellTool$OptionKind;
         1: .line 443
            aload 0 /* this */
            aload 1 /* options */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argClassPath:Ljdk/internal/joptsimple/OptionSpec;
            invokevirtual jdk.internal.joptsimple.OptionSet.valuesOf:(Ljdk/internal/joptsimple/OptionSpec;)Ljava/util/List;
            ldc "--class-path"
            iconst_0
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.validPaths:(Ljava/util/Collection;Ljava/lang/String;Z)Ljava/util/Collection;
         2: .line 442
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.addOptions:(Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection;)V
         3: .line 444
            aload 0 /* this */
            getstatic jdk.internal.jshell.tool.JShellTool$OptionKind.MODULE_PATH:Ljdk/internal/jshell/tool/JShellTool$OptionKind;
         4: .line 445
            aload 0 /* this */
            aload 1 /* options */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argModulePath:Ljdk/internal/joptsimple/OptionSpec;
            invokevirtual jdk.internal.joptsimple.OptionSet.valuesOf:(Ljdk/internal/joptsimple/OptionSpec;)Ljava/util/List;
            ldc "--module-path"
            iconst_1
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.validPaths:(Ljava/util/Collection;Ljava/lang/String;Z)Ljava/util/Collection;
         5: .line 444
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.addOptions:(Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection;)V
         6: .line 446
            aload 0 /* this */
            getstatic jdk.internal.jshell.tool.JShellTool$OptionKind.ADD_MODULES:Ljdk/internal/jshell/tool/JShellTool$OptionKind;
            aload 1 /* options */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argAddModules:Ljdk/internal/joptsimple/OptionSpec;
            invokevirtual jdk.internal.joptsimple.OptionSet.valuesOf:(Ljdk/internal/joptsimple/OptionSpec;)Ljava/util/List;
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.addOptions:(Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection;)V
         7: .line 447
            aload 0 /* this */
            getstatic jdk.internal.jshell.tool.JShellTool$OptionKind.ADD_EXPORTS:Ljdk/internal/jshell/tool/JShellTool$OptionKind;
            aload 1 /* options */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.argAddExports:Ljdk/internal/joptsimple/OptionSpec;
            invokevirtual jdk.internal.joptsimple.OptionSet.valuesOf:(Ljdk/internal/joptsimple/OptionSpec;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         8: .line 448
            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$OptionParserBase.lambda$4(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         9: .line 449
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Collection
        10: .line 447
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.addOptions:(Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection;)V
        11: .line 452
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.failed:Z
            ifeq 14
        12: .line 453
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.this$0:Ljdk/internal/jshell/tool/JShellTool;
            iconst_1
            putfield jdk.internal.jshell.tool.JShellTool.exitCode:I
        13: .line 454
            aconst_null
            areturn
        14: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.opts:Ljdk/internal/jshell/tool/JShellTool$Options;
            areturn
        end local 1 // jdk.internal.joptsimple.OptionSet options
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0   15     1  options  Ljdk/internal/joptsimple/OptionSet;
    MethodParameters:
         Name  Flags
      options  

  void addOptions(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=6, locals=3, args_size=3
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 1 // jdk.internal.jshell.tool.JShellTool$OptionKind kind
        start local 2 // java.util.Collection vals
         0: .line 461
            aload 2 /* vals */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 11
         1: .line 462
            aload 1 /* kind */
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.onlyOne:Z
            ifeq 5
            aload 2 /* vals */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmple 5
         2: .line 463
            aload 0 /* this */
            ldc "jshell.err.opt.one"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* kind */
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.optionFlag:Ljava/lang/String;
            aastore
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.msg:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 464
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.failed:Z
         4: .line 465
            return
         5: .line 467
      StackMap locals:
      StackMap stack:
            aload 1 /* kind */
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.passFlag:Z
            ifeq 10
         6: .line 468
            aload 2 /* vals */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         7: .line 469
            aload 1 /* kind */
            invokedynamic apply(Ljdk/internal/jshell/tool/JShellTool$OptionKind;)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$OptionParserBase.lambda$5(Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/lang/String;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/String;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 470
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Collection
         9: .line 468
            astore 2 /* vals */
        10: .line 472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellTool$OptionParserBase.opts:Ljdk/internal/jshell/tool/JShellTool$Options;
            aload 1 /* kind */
            aload 2 /* vals */
            invokevirtual jdk.internal.jshell.tool.JShellTool$Options.addAll:(Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/util/Collection;)V
        11: .line 474
      StackMap locals:
      StackMap stack:
            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$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0   12     1  kind  Ljdk/internal/jshell/tool/JShellTool$OptionKind;
            0   12     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  

  private java.lang.String lambda$0(java.lang.String, boolean, java.lang.String);
    descriptor: (Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 3 // java.lang.String s
         0: .line 390
            aload 3 /* s */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         1: .line 391
            aload 0 /* this */
            aload 1
            invokedynamic apply(Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;Ljava/lang/String;)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$OptionParserBase.lambda$1(Ljava/lang/String;Ljava/lang/String;)Ljava/util/stream/Stream; (7)
                  (Ljava/lang/String;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 392
            aload 0 /* this */
            aload 1
            iload 2
            invokedynamic test(Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;Ljava/lang/String;Z)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$OptionParserBase.lambda$2(Ljava/lang/String;ZLjava/nio/file/Path;)Z (7)
                  (Ljava/nio/file/Path;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 393
            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$OptionParserBase.lambda$3(Ljava/nio/file/Path;)Ljava/lang/String; (6)
                  (Ljava/nio/file/Path;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 394
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 3 // java.lang.String s
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0    5     3     s  Ljava/lang/String;

  private static java.lang.String lambda$4(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String mp
         0: .line 448
            aload 0 /* mp */
            ldc "="
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 1
            aload 0 /* mp */
            goto 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.StringBuilder
            dup
            aload 0 /* mp */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "=ALL-UNNAMED"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.lang.String mp
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    mp  Ljava/lang/String;

  private static java.util.stream.Stream lambda$5(jdk.internal.jshell.tool.JShellTool$OptionKind, java.lang.String);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool$OptionKind;Ljava/lang/String;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // java.lang.String mp
         0: .line 469
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 0
            getfield jdk.internal.jshell.tool.JShellTool$OptionKind.optionFlag:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* mp */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
        end local 1 // java.lang.String mp
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mp  Ljava/lang/String;

  private java.util.stream.Stream lambda$1(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/stream/Stream;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 2 // java.lang.String sp
         0: .line 391
            aload 0 /* this */
            aload 2 /* sp */
            aload 1
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.toPathImpl:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/stream/Stream;
            areturn
        end local 2 // java.lang.String sp
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0    1     2    sp  Ljava/lang/String;

  private boolean lambda$2(java.lang.String, boolean, java.nio.file.Path);
    descriptor: (Ljava/lang/String;ZLjava/nio/file/Path;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
        start local 3 // java.nio.file.Path p
         0: .line 392
            aload 0 /* this */
            aload 3 /* p */
            aload 1
            iload 2
            invokevirtual jdk.internal.jshell.tool.JShellTool$OptionParserBase.checkValidPathEntry:(Ljava/nio/file/Path;Ljava/lang/String;Z)Z
            ireturn
        end local 3 // java.nio.file.Path p
        end local 0 // jdk.internal.jshell.tool.JShellTool$OptionParserBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/JShellTool$OptionParserBase;
            0    1     3     p  Ljava/nio/file/Path;

  private static java.lang.String lambda$3(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.file.Path p
         0: .line 393
            aload 0 /* p */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.nio.file.Path p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     p  Ljava/nio/file/Path;
}
SourceFile: "JShellTool.java"
NestHost: jdk.internal.jshell.tool.JShellTool
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private final OptionKind = jdk.internal.jshell.tool.JShellTool$OptionKind of jdk.internal.jshell.tool.JShellTool
  private OptionParserBase = jdk.internal.jshell.tool.JShellTool$OptionParserBase of jdk.internal.jshell.tool.JShellTool
  private Options = jdk.internal.jshell.tool.JShellTool$Options of jdk.internal.jshell.tool.JShellTool