class jdk.jshell.TaskFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.jshell.TaskFactory
  super_class: java.lang.Object
{
  private final javax.tools.JavaCompiler compiler;
    descriptor: Ljavax/tools/JavaCompiler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private java.lang.String classpath;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.Runtime$Version INITIAL_SUPPORTED_VER;
    descriptor: Ljava/lang/Runtime$Version;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private com.sun.tools.javac.api.JavacTaskPool javacTaskPool;
    descriptor: Lcom/sun/tools/javac/api/JavacTaskPool;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 98
            ldc "9"
            invokestatic java.lang.Runtime$Version.parse:(Ljava/lang/String;)Ljava/lang/Runtime$Version;
            putstatic jdk.jshell.TaskFactory.INITIAL_SUPPORTED_VER:Ljava/lang/Runtime$Version;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.jshell.JShell);
    descriptor: (Ljdk/jshell/JShell;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // jdk.jshell.JShell state
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 97
            aload 0 /* this */
            ldc "java.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putfield jdk.jshell.TaskFactory.classpath:Ljava/lang/String;
         2: .line 101
            aload 0 /* this */
            aload 1 /* state */
            putfield jdk.jshell.TaskFactory.state:Ljdk/jshell/JShell;
         3: .line 102
            aload 0 /* this */
            invokestatic javax.tools.ToolProvider.getSystemJavaCompiler:()Ljavax/tools/JavaCompiler;
            putfield jdk.jshell.TaskFactory.compiler:Ljavax/tools/JavaCompiler;
         4: .line 103
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.compiler:Ljavax/tools/JavaCompiler;
            ifnonnull 6
         5: .line 104
            new java.lang.UnsupportedOperationException
            dup
            ldc "Compiler not available, must be run with full JDK 9."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 106
      StackMap locals: jdk.jshell.TaskFactory jdk.jshell.JShell
      StackMap stack:
            ldc "java.specification.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Runtime$Version.parse:(Ljava/lang/String;)Ljava/lang/Runtime$Version;
            astore 2 /* current */
        start local 2 // java.lang.Runtime$Version current
         7: .line 107
            getstatic jdk.jshell.TaskFactory.INITIAL_SUPPORTED_VER:Ljava/lang/Runtime$Version;
            aload 2 /* current */
            invokevirtual java.lang.Runtime$Version.compareToIgnoreOptional:(Ljava/lang/Runtime$Version;)I
            ifle 9
         8: .line 108
            new java.lang.UnsupportedOperationException
            dup
            ldc "Wrong compiler, must be run with full JDK 9."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 110
      StackMap locals: java.lang.Runtime$Version
      StackMap stack:
            aload 0 /* this */
            new jdk.jshell.MemoryFileManager
            dup
        10: .line 111
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.compiler:Ljavax/tools/JavaCompiler;
            aconst_null
            aconst_null
            aconst_null
            invokeinterface javax.tools.JavaCompiler.getStandardFileManager:(Ljavax/tools/DiagnosticListener;Ljava/util/Locale;Ljava/nio/charset/Charset;)Ljavax/tools/StandardJavaFileManager;
            aload 1 /* state */
            invokespecial jdk.jshell.MemoryFileManager.<init>:(Ljavax/tools/StandardJavaFileManager;Ljdk/jshell/JShell;)V
        11: .line 110
            putfield jdk.jshell.TaskFactory.fileManager:Ljdk/jshell/MemoryFileManager;
        12: .line 112
            aload 0 /* this */
            invokevirtual jdk.jshell.TaskFactory.initTaskPool:()V
        13: .line 113
            return
        end local 2 // java.lang.Runtime$Version current
        end local 1 // jdk.jshell.JShell state
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Ljdk/jshell/TaskFactory;
            0   14     1    state  Ljdk/jshell/JShell;
            7   14     2  current  Ljava/lang/Runtime$Version;
    MethodParameters:
       Name  Flags
      state  

  void addToClasspath(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // java.lang.String path
         0: .line 116
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.classpath:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield jdk.jshell.TaskFactory.classpath:Ljava/lang/String;
         1: .line 117
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* args */
        start local 2 // java.util.List args
         2: .line 118
            aload 2 /* args */
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.classpath:Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 119
            aload 0 /* this */
            invokevirtual jdk.jshell.TaskFactory.fileManager:()Ljdk/jshell/MemoryFileManager;
            ldc "-classpath"
            aload 2 /* args */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokevirtual jdk.jshell.MemoryFileManager.handleOption:(Ljava/lang/String;Ljava/util/Iterator;)Z
            pop
         4: .line 120
            aload 0 /* this */
            invokevirtual jdk.jshell.TaskFactory.initTaskPool:()V
         5: .line 121
            return
        end local 2 // java.util.List args
        end local 1 // java.lang.String path
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/jshell/TaskFactory;
            0    6     1  path  Ljava/lang/String;
            2    6     2  args  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      path  

  jdk.jshell.MemoryFileManager fileManager();
    descriptor: ()Ljdk/jshell/MemoryFileManager;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.TaskFactory this
         0: .line 124
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.fileManager:Ljdk/jshell/MemoryFileManager;
            areturn
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TaskFactory;

  public <Z> Z parse(java.lang.String, boolean, jdk.jshell.TaskFactory$Worker<jdk.jshell.TaskFactory$ParseTask, Z>);
    descriptor: (Ljava/lang/String;ZLjdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // java.lang.String source
        start local 2 // boolean forceExpression
        start local 3 // jdk.jshell.TaskFactory$Worker worker
         0: .line 130
            new jdk.jshell.TaskFactory$StringSourceHandler
            dup
            aload 0 /* this */
            invokespecial jdk.jshell.TaskFactory$StringSourceHandler.<init>:(Ljdk/jshell/TaskFactory;)V
            astore 4 /* sh */
        start local 4 // jdk.jshell.TaskFactory$StringSourceHandler sh
         1: .line 131
            aload 0 /* this */
            aload 1 /* source */
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
         2: .line 132
            aload 4 /* sh */
         3: .line 133
            ldc "-XDallowStringFolding=false"
            ldc "-proc:none"
         4: .line 134
            new java.lang.StringBuilder
            dup
            ldc "-XDneedsReplParserFactory="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* forceExpression */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 133
            invokestatic java.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
         6: .line 135
            aload 0 /* this */
            aload 4 /* sh */
            iload 2 /* forceExpression */
            invokedynamic apply(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$StringSourceHandler;Z)Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  jdk/jshell/TaskFactory.lambda$0(Ljdk/jshell/TaskFactory$StringSourceHandler;ZLcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$ParseTask; (7)
                  (Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$ParseTask;
         7: .line 136
            aload 3 /* worker */
         8: .line 131
            invokevirtual jdk.jshell.TaskFactory.runTask:(Ljava/util/stream/Stream;Ljdk/jshell/TaskFactory$SourceHandler;Ljava/util/List;Ljava/util/function/BiFunction;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
        end local 4 // jdk.jshell.TaskFactory$StringSourceHandler sh
        end local 3 // jdk.jshell.TaskFactory$Worker worker
        end local 2 // boolean forceExpression
        end local 1 // java.lang.String source
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Ljdk/jshell/TaskFactory;
            0    9     1           source  Ljava/lang/String;
            0    9     2  forceExpression  Z
            0    9     3           worker  Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$ParseTask;TZ;>;
            1    9     4               sh  Ljdk/jshell/TaskFactory$StringSourceHandler;
    Signature: <Z:Ljava/lang/Object;>(Ljava/lang/String;ZLjdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$ParseTask;TZ;>;)TZ;
    MethodParameters:
                 Name  Flags
      source           
      forceExpression  
      worker           

  public <Z> Z analyze(jdk.jshell.OuterWrap, jdk.jshell.TaskFactory$Worker<jdk.jshell.TaskFactory$AnalyzeTask, Z>);
    descriptor: (Ljdk/jshell/OuterWrap;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // jdk.jshell.OuterWrap wrap
        start local 2 // jdk.jshell.TaskFactory$Worker worker
         0: .line 141
            aload 0 /* this */
            aload 1 /* wrap */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            aload 2 /* worker */
            invokevirtual jdk.jshell.TaskFactory.analyze:(Ljava/util/Collection;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
        end local 2 // jdk.jshell.TaskFactory$Worker worker
        end local 1 // jdk.jshell.OuterWrap wrap
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/jshell/TaskFactory;
            0    1     1    wrap  Ljdk/jshell/OuterWrap;
            0    1     2  worker  Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;
    Signature: <Z:Ljava/lang/Object;>(Ljdk/jshell/OuterWrap;Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;)TZ;
    MethodParameters:
        Name  Flags
      wrap    
      worker  

  public <Z> Z analyze(jdk.jshell.OuterWrap, java.util.List<java.lang.String>, jdk.jshell.TaskFactory$Worker<jdk.jshell.TaskFactory$AnalyzeTask, Z>);
    descriptor: (Ljdk/jshell/OuterWrap;Ljava/util/List;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // jdk.jshell.OuterWrap wrap
        start local 2 // java.util.List extraArgs
        start local 3 // jdk.jshell.TaskFactory$Worker worker
         0: .line 147
            aload 0 /* this */
            aload 1 /* wrap */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            aload 2 /* extraArgs */
            aload 3 /* worker */
            invokevirtual jdk.jshell.TaskFactory.analyze:(Ljava/util/Collection;Ljava/util/List;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
        end local 3 // jdk.jshell.TaskFactory$Worker worker
        end local 2 // java.util.List extraArgs
        end local 1 // jdk.jshell.OuterWrap wrap
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ljdk/jshell/TaskFactory;
            0    1     1       wrap  Ljdk/jshell/OuterWrap;
            0    1     2  extraArgs  Ljava/util/List<Ljava/lang/String;>;
            0    1     3     worker  Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;
    Signature: <Z:Ljava/lang/Object;>(Ljdk/jshell/OuterWrap;Ljava/util/List<Ljava/lang/String;>;Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;)TZ;
    MethodParameters:
           Name  Flags
      wrap       
      extraArgs  
      worker     

  public <Z> Z analyze(java.util.Collection<jdk.jshell.OuterWrap>, jdk.jshell.TaskFactory$Worker<jdk.jshell.TaskFactory$AnalyzeTask, Z>);
    descriptor: (Ljava/util/Collection;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // java.util.Collection wraps
        start local 2 // jdk.jshell.TaskFactory$Worker worker
         0: .line 152
            aload 0 /* this */
            aload 1 /* wraps */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 2 /* worker */
            invokevirtual jdk.jshell.TaskFactory.analyze:(Ljava/util/Collection;Ljava/util/List;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
        end local 2 // jdk.jshell.TaskFactory$Worker worker
        end local 1 // java.util.Collection wraps
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/jshell/TaskFactory;
            0    1     1   wraps  Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;
            0    1     2  worker  Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;
    Signature: <Z:Ljava/lang/Object;>(Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;)TZ;
    MethodParameters:
        Name  Flags
      wraps   
      worker  

  public <Z> Z analyze(java.util.Collection<jdk.jshell.OuterWrap>, java.util.List<java.lang.String>, jdk.jshell.TaskFactory$Worker<jdk.jshell.TaskFactory$AnalyzeTask, Z>);
    descriptor: (Ljava/util/Collection;Ljava/util/List;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // java.util.Collection wraps
        start local 2 // java.util.List extraArgs
        start local 3 // jdk.jshell.TaskFactory$Worker worker
         0: .line 158
            new jdk.jshell.TaskFactory$WrapSourceHandler
            dup
            aload 0 /* this */
            invokespecial jdk.jshell.TaskFactory$WrapSourceHandler.<init>:(Ljdk/jshell/TaskFactory;)V
            astore 4 /* sh */
        start local 4 // jdk.jshell.TaskFactory$WrapSourceHandler sh
         1: .line 159
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* allOptions */
        start local 5 // java.util.List allOptions
         2: .line 161
            aload 5 /* allOptions */
            ldc "--should-stop:at=FLOW"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 162
            aload 5 /* allOptions */
            ldc "-Xlint:unchecked"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 163
            aload 5 /* allOptions */
            ldc "-proc:none"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 164
            aload 5 /* allOptions */
            aload 2 /* extraArgs */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 166
            aload 0 /* this */
            aload 1 /* wraps */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         7: .line 167
            aload 4 /* sh */
         8: .line 168
            aload 5 /* allOptions */
         9: .line 169
            aload 0 /* this */
            aload 4 /* sh */
            invokedynamic apply(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$WrapSourceHandler;)Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  jdk/jshell/TaskFactory.lambda$1(Ljdk/jshell/TaskFactory$WrapSourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$AnalyzeTask; (7)
                  (Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$AnalyzeTask;
        10: .line 170
            aload 3 /* worker */
        11: .line 166
            invokevirtual jdk.jshell.TaskFactory.runTask:(Ljava/util/stream/Stream;Ljdk/jshell/TaskFactory$SourceHandler;Ljava/util/List;Ljava/util/function/BiFunction;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
        end local 5 // java.util.List allOptions
        end local 4 // jdk.jshell.TaskFactory$WrapSourceHandler sh
        end local 3 // jdk.jshell.TaskFactory$Worker worker
        end local 2 // java.util.List extraArgs
        end local 1 // java.util.Collection wraps
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Ljdk/jshell/TaskFactory;
            0   12     1       wraps  Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;
            0   12     2   extraArgs  Ljava/util/List<Ljava/lang/String;>;
            0   12     3      worker  Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;
            1   12     4          sh  Ljdk/jshell/TaskFactory$WrapSourceHandler;
            2   12     5  allOptions  Ljava/util/List<Ljava/lang/String;>;
    Signature: <Z:Ljava/lang/Object;>(Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;Ljava/util/List<Ljava/lang/String;>;Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$AnalyzeTask;TZ;>;)TZ;
    MethodParameters:
           Name  Flags
      wraps      
      extraArgs  
      worker     

  public <Z> Z compile(java.util.Collection<jdk.jshell.OuterWrap>, jdk.jshell.TaskFactory$Worker<jdk.jshell.TaskFactory$CompileTask, Z>);
    descriptor: (Ljava/util/Collection;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // java.util.Collection wraps
        start local 2 // jdk.jshell.TaskFactory$Worker worker
         0: .line 175
            new jdk.jshell.TaskFactory$WrapSourceHandler
            dup
            aload 0 /* this */
            invokespecial jdk.jshell.TaskFactory$WrapSourceHandler.<init>:(Ljdk/jshell/TaskFactory;)V
            astore 3 /* sh */
        start local 3 // jdk.jshell.TaskFactory$WrapSourceHandler sh
         1: .line 177
            aload 0 /* this */
            aload 1 /* wraps */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         2: .line 178
            aload 3 /* sh */
         3: .line 179
            ldc "-Xlint:unchecked"
            ldc "-proc:none"
            ldc "-parameters"
            invokestatic java.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
         4: .line 180
            aload 0 /* this */
            aload 3 /* sh */
            invokedynamic apply(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$WrapSourceHandler;)Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  jdk/jshell/TaskFactory.lambda$2(Ljdk/jshell/TaskFactory$WrapSourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$CompileTask; (7)
                  (Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$CompileTask;
         5: .line 181
            aload 2 /* worker */
         6: .line 177
            invokevirtual jdk.jshell.TaskFactory.runTask:(Ljava/util/stream/Stream;Ljdk/jshell/TaskFactory$SourceHandler;Ljava/util/List;Ljava/util/function/BiFunction;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
        end local 3 // jdk.jshell.TaskFactory$WrapSourceHandler sh
        end local 2 // jdk.jshell.TaskFactory$Worker worker
        end local 1 // java.util.Collection wraps
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljdk/jshell/TaskFactory;
            0    7     1   wraps  Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;
            0    7     2  worker  Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$CompileTask;TZ;>;
            1    7     3      sh  Ljdk/jshell/TaskFactory$WrapSourceHandler;
    Signature: <Z:Ljava/lang/Object;>(Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$CompileTask;TZ;>;)TZ;
    MethodParameters:
        Name  Flags
      wraps   
      worker  

  private <S, T extends jdk.jshell.TaskFactory$BaseTask, Z> Z runTask(java.util.stream.Stream<S>, jdk.jshell.TaskFactory$SourceHandler<S>, java.util.List<java.lang.String>, java.util.function.BiFunction<com.sun.tools.javac.api.JavacTaskImpl, javax.tools.DiagnosticCollector<javax.tools.JavaFileObject>, T>, jdk.jshell.TaskFactory$Worker<T, Z>);
    descriptor: (Ljava/util/stream/Stream;Ljdk/jshell/TaskFactory$SourceHandler;Ljava/util/List;Ljava/util/function/BiFunction;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=9, args_size=6
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // java.util.stream.Stream inputs
        start local 2 // jdk.jshell.TaskFactory$SourceHandler sh
        start local 3 // java.util.List options
        start local 4 // java.util.function.BiFunction creator
        start local 5 // jdk.jshell.TaskFactory$Worker worker
         0: .line 189
            new java.util.ArrayList
            dup
            aload 3 /* options */
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.state:Ljdk/jshell/JShell;
            getfield jdk.jshell.JShell.extraCompilerOptions:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* allOptions */
        start local 6 // java.util.List allOptions
         1: .line 190
            aload 6 /* allOptions */
            aload 3 /* options */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 191
            aload 6 /* allOptions */
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.state:Ljdk/jshell/JShell;
            getfield jdk.jshell.JShell.extraCompilerOptions:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 192
            aload 1 /* inputs */
         4: .line 193
            aload 0 /* this */
            aload 2 /* sh */
            invokedynamic apply(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$SourceHandler;)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/jshell/TaskFactory.lambda$3(Ljdk/jshell/TaskFactory$SourceHandler;Ljava/lang/Object;)Ljavax/tools/JavaFileObject; (7)
                  (Ljava/lang/Object;)Ljavax/tools/JavaFileObject;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 194
            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.lang.Iterable
         6: .line 192
            astore 7 /* compilationUnits */
        start local 7 // java.lang.Iterable compilationUnits
         7: .line 195
            new javax.tools.DiagnosticCollector
            dup
            invokespecial javax.tools.DiagnosticCollector.<init>:()V
            astore 8 /* diagnostics */
        start local 8 // javax.tools.DiagnosticCollector diagnostics
         8: .line 196
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.javacTaskPool:Lcom/sun/tools/javac/api/JavacTaskPool;
            aconst_null
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.fileManager:Ljdk/jshell/MemoryFileManager;
            aload 8 /* diagnostics */
            aload 6 /* allOptions */
            aconst_null
         9: .line 197
            aload 7 /* compilationUnits */
            aload 0 /* this */
            aload 5 /* worker */
            aload 4 /* creator */
            aload 8 /* diagnostics */
            invokedynamic withTask(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$Worker;Ljava/util/function/BiFunction;Ljavax/tools/DiagnosticCollector;)Lcom/sun/tools/javac/api/JavacTaskPool$Worker;
              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:
                  (Lcom/sun/source/util/JavacTask;)Ljava/lang/Object;
                  jdk/jshell/TaskFactory.lambda$4(Ljdk/jshell/TaskFactory$Worker;Ljava/util/function/BiFunction;Ljavax/tools/DiagnosticCollector;Lcom/sun/source/util/JavacTask;)Ljava/lang/Object; (7)
                  (Lcom/sun/source/util/JavacTask;)Ljava/lang/Object;
        10: .line 196
            invokevirtual com.sun.tools.javac.api.JavacTaskPool.getTask:(Ljava/io/Writer;Ljavax/tools/JavaFileManager;Ljavax/tools/DiagnosticListener;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lcom/sun/tools/javac/api/JavacTaskPool$Worker;)Ljava/lang/Object;
            areturn
        end local 8 // javax.tools.DiagnosticCollector diagnostics
        end local 7 // java.lang.Iterable compilationUnits
        end local 6 // java.util.List allOptions
        end local 5 // jdk.jshell.TaskFactory$Worker worker
        end local 4 // java.util.function.BiFunction creator
        end local 3 // java.util.List options
        end local 2 // jdk.jshell.TaskFactory$SourceHandler sh
        end local 1 // java.util.stream.Stream inputs
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Ljdk/jshell/TaskFactory;
            0   11     1            inputs  Ljava/util/stream/Stream<TS;>;
            0   11     2                sh  Ljdk/jshell/TaskFactory$SourceHandler<TS;>;
            0   11     3           options  Ljava/util/List<Ljava/lang/String;>;
            0   11     4           creator  Ljava/util/function/BiFunction<Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;TT;>;
            0   11     5            worker  Ljdk/jshell/TaskFactory$Worker<TT;TZ;>;
            1   11     6        allOptions  Ljava/util/List<Ljava/lang/String;>;
            7   11     7  compilationUnits  Ljava/lang/Iterable<+Ljavax/tools/JavaFileObject;>;
            8   11     8       diagnostics  Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;
    Signature: <S:Ljava/lang/Object;T:Ljdk/jshell/TaskFactory$BaseTask;Z:Ljava/lang/Object;>(Ljava/util/stream/Stream<TS;>;Ljdk/jshell/TaskFactory$SourceHandler<TS;>;Ljava/util/List<Ljava/lang/String;>;Ljava/util/function/BiFunction<Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;TT;>;Ljdk/jshell/TaskFactory$Worker<TT;TZ;>;)TZ;
    MethodParameters:
         Name  Flags
      inputs   
      sh       
      options  
      creator  
      worker   

  <Z> Z parse(java.lang.String, jdk.jshell.TaskFactory$Worker<jdk.jshell.TaskFactory$ParseTask, Z>);
    descriptor: (Ljava/lang/String;Ljdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.jshell.TaskFactory this
        start local 1 // java.lang.String source
        start local 2 // jdk.jshell.TaskFactory$Worker worker
         0: .line 227
            aload 0 /* this */
            aload 1 /* source */
            iconst_0
            aload 0 /* this */
            aload 2 /* worker */
            aload 1 /* source */
            invokedynamic withTask(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$Worker;Ljava/lang/String;)Ljdk/jshell/TaskFactory$Worker;
              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:
                  (Ljdk/jshell/TaskFactory$BaseTask;)Ljava/lang/Object;
                  jdk/jshell/TaskFactory.lambda$5(Ljdk/jshell/TaskFactory$Worker;Ljava/lang/String;Ljdk/jshell/TaskFactory$ParseTask;)Ljava/lang/Object; (7)
                  (Ljdk/jshell/TaskFactory$ParseTask;)Ljava/lang/Object;
            invokevirtual jdk.jshell.TaskFactory.parse:(Ljava/lang/String;ZLjdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
        end local 2 // jdk.jshell.TaskFactory$Worker worker
        end local 1 // java.lang.String source
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/jshell/TaskFactory;
            0    1     1  source  Ljava/lang/String;
            0    1     2  worker  Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$ParseTask;TZ;>;
    Signature: <Z:Ljava/lang/Object;>(Ljava/lang/String;Ljdk/jshell/TaskFactory$Worker<Ljdk/jshell/TaskFactory$ParseTask;TZ;>;)TZ;
    MethodParameters:
        Name  Flags
      source  final
      worker  

  private void initTaskPool();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.jshell.TaskFactory this
         0: .line 454
            aload 0 /* this */
            new com.sun.tools.javac.api.JavacTaskPool
            dup
            iconst_5
            invokespecial com.sun.tools.javac.api.JavacTaskPool.<init>:(I)V
            putfield jdk.jshell.TaskFactory.javacTaskPool:Lcom/sun/tools/javac/api/JavacTaskPool;
         1: .line 455
            return
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jshell/TaskFactory;

  private jdk.jshell.TaskFactory$ParseTask lambda$0(jdk.jshell.TaskFactory$StringSourceHandler, boolean, com.sun.tools.javac.api.JavacTaskImpl, javax.tools.DiagnosticCollector);
    descriptor: (Ljdk/jshell/TaskFactory$StringSourceHandler;ZLcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$ParseTask;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // jdk.jshell.TaskFactory this
        start local 3 // com.sun.tools.javac.api.JavacTaskImpl jti
        start local 4 // javax.tools.DiagnosticCollector diagnostics
         0: .line 135
            new jdk.jshell.TaskFactory$ParseTask
            dup
            aload 0 /* this */
            aload 1
            aload 3 /* jti */
            aload 4 /* diagnostics */
            iload 2
            invokespecial jdk.jshell.TaskFactory$ParseTask.<init>:(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$SourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;Z)V
            areturn
        end local 4 // javax.tools.DiagnosticCollector diagnostics
        end local 3 // com.sun.tools.javac.api.JavacTaskImpl jti
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Ljdk/jshell/TaskFactory;
            0    1     3          jti  Lcom/sun/tools/javac/api/JavacTaskImpl;
            0    1     4  diagnostics  Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;

  private jdk.jshell.TaskFactory$AnalyzeTask lambda$1(jdk.jshell.TaskFactory$WrapSourceHandler, com.sun.tools.javac.api.JavacTaskImpl, javax.tools.DiagnosticCollector);
    descriptor: (Ljdk/jshell/TaskFactory$WrapSourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$AnalyzeTask;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // jdk.jshell.TaskFactory this
        start local 2 // com.sun.tools.javac.api.JavacTaskImpl jti
        start local 3 // javax.tools.DiagnosticCollector diagnostics
         0: .line 169
            new jdk.jshell.TaskFactory$AnalyzeTask
            dup
            aload 0 /* this */
            aload 1
            aload 2 /* jti */
            aload 3 /* diagnostics */
            invokespecial jdk.jshell.TaskFactory$AnalyzeTask.<init>:(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$SourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)V
            areturn
        end local 3 // javax.tools.DiagnosticCollector diagnostics
        end local 2 // com.sun.tools.javac.api.JavacTaskImpl jti
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Ljdk/jshell/TaskFactory;
            0    1     2          jti  Lcom/sun/tools/javac/api/JavacTaskImpl;
            0    1     3  diagnostics  Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;

  private jdk.jshell.TaskFactory$CompileTask lambda$2(jdk.jshell.TaskFactory$WrapSourceHandler, com.sun.tools.javac.api.JavacTaskImpl, javax.tools.DiagnosticCollector);
    descriptor: (Ljdk/jshell/TaskFactory$WrapSourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)Ljdk/jshell/TaskFactory$CompileTask;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // jdk.jshell.TaskFactory this
        start local 2 // com.sun.tools.javac.api.JavacTaskImpl jti
        start local 3 // javax.tools.DiagnosticCollector diagnostics
         0: .line 180
            new jdk.jshell.TaskFactory$CompileTask
            dup
            aload 0 /* this */
            aload 1
            aload 2 /* jti */
            aload 3 /* diagnostics */
            invokespecial jdk.jshell.TaskFactory$CompileTask.<init>:(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$SourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)V
            areturn
        end local 3 // javax.tools.DiagnosticCollector diagnostics
        end local 2 // com.sun.tools.javac.api.JavacTaskImpl jti
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Ljdk/jshell/TaskFactory;
            0    1     2          jti  Lcom/sun/tools/javac/api/JavacTaskImpl;
            0    1     3  diagnostics  Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;

  private javax.tools.JavaFileObject lambda$3(jdk.jshell.TaskFactory$SourceHandler, java.lang.Object);
    descriptor: (Ljdk/jshell/TaskFactory$SourceHandler;Ljava/lang/Object;)Ljavax/tools/JavaFileObject;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.jshell.TaskFactory this
        start local 2 // java.lang.Object in
         0: .line 193
            aload 1
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.fileManager:Ljdk/jshell/MemoryFileManager;
            aload 2 /* in */
            invokeinterface jdk.jshell.TaskFactory$SourceHandler.sourceToFileObject:(Ljdk/jshell/MemoryFileManager;Ljava/lang/Object;)Ljavax/tools/JavaFileObject;
            areturn
        end local 2 // java.lang.Object in
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TaskFactory;
            0    1     2    in  TS;

  private java.lang.Object lambda$4(jdk.jshell.TaskFactory$Worker, java.util.function.BiFunction, javax.tools.DiagnosticCollector, com.sun.source.util.JavacTask);
    descriptor: (Ljdk/jshell/TaskFactory$Worker;Ljava/util/function/BiFunction;Ljavax/tools/DiagnosticCollector;Lcom/sun/source/util/JavacTask;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // jdk.jshell.TaskFactory this
        start local 4 // com.sun.source.util.JavacTask task
         0: .line 198
            aload 4 /* task */
            checkcast com.sun.tools.javac.api.JavacTaskImpl
            astore 5 /* jti */
        start local 5 // com.sun.tools.javac.api.JavacTaskImpl jti
         1: .line 199
            aload 5 /* jti */
            invokevirtual com.sun.tools.javac.api.JavacTaskImpl.getContext:()Lcom/sun/tools/javac/util/Context;
            astore 6 /* context */
        start local 6 // com.sun.tools.javac.util.Context context
         2: .line 200
            aload 5 /* jti */
            new jdk.jshell.TaskFactory$TaskListenerImpl
            dup
            aload 6 /* context */
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory.state:Ljdk/jshell/JShell;
            invokespecial jdk.jshell.TaskFactory$TaskListenerImpl.<init>:(Lcom/sun/tools/javac/util/Context;Ljdk/jshell/JShell;)V
            invokevirtual com.sun.tools.javac.api.JavacTaskImpl.addTaskListener:(Lcom/sun/source/util/TaskListener;)V
         3: .line 202
            aload 1
            aload 2
            aload 5 /* jti */
            aload 3
            invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jshell.TaskFactory$BaseTask
            invokeinterface jdk.jshell.TaskFactory$Worker.withTask:(Ljdk/jshell/TaskFactory$BaseTask;)Ljava/lang/Object;
            astore 8
         4: .line 205
            aload 6 /* context */
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            astore 9 /* syms */
        start local 9 // com.sun.tools.javac.code.Symtab syms
         5: .line 206
            aload 6 /* context */
            invokestatic com.sun.tools.javac.util.Names.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Names;
            astore 10 /* names */
        start local 10 // com.sun.tools.javac.util.Names names
         6: .line 207
            aload 9 /* syms */
            aload 9 /* syms */
            getfield com.sun.tools.javac.code.Symtab.unnamedModule:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 10 /* names */
            ldc "REPL"
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Symtab.getPackage:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            astore 11 /* repl */
        start local 11 // com.sun.tools.javac.code.Symbol$PackageSymbol repl
         7: .line 208
            aload 11 /* repl */
            ifnull 15
         8: .line 209
            aload 9 /* syms */
            invokevirtual com.sun.tools.javac.code.Symtab.getAllClasses:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 13
            goto 12
      StackMap locals: jdk.jshell.TaskFactory jdk.jshell.TaskFactory$Worker java.util.function.BiFunction javax.tools.DiagnosticCollector com.sun.source.util.JavacTask com.sun.tools.javac.api.JavacTaskImpl com.sun.tools.javac.util.Context top java.lang.Object com.sun.tools.javac.code.Symtab com.sun.tools.javac.util.Names com.sun.tools.javac.code.Symbol$PackageSymbol top java.util.Iterator
      StackMap stack:
         9: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 12 /* clazz */
        start local 12 // com.sun.tools.javac.code.Symbol$ClassSymbol clazz
        10: .line 210
            aload 12 /* clazz */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.packge:()Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            aload 11 /* repl */
            if_acmpne 12
        11: .line 211
            aload 9 /* syms */
            aload 9 /* syms */
            getfield com.sun.tools.javac.code.Symtab.unnamedModule:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 12 /* clazz */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flatName:()Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Symtab.removeClass:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)V
        end local 12 // com.sun.tools.javac.code.Symbol$ClassSymbol clazz
        12: .line 209
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 214
            aload 11 /* repl */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$PackageSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
        14: .line 215
            aload 11 /* repl */
            aload 6 /* context */
            invokestatic com.sun.tools.javac.code.ClassFinder.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/ClassFinder;
            invokevirtual com.sun.tools.javac.code.ClassFinder.getCompleter:()Lcom/sun/tools/javac/code/Symbol$Completer;
            putfield com.sun.tools.javac.code.Symbol$PackageSymbol.completer:Lcom/sun/tools/javac/code/Symbol$Completer;
        end local 11 // com.sun.tools.javac.code.Symbol$PackageSymbol repl
        end local 10 // com.sun.tools.javac.util.Names names
        end local 9 // com.sun.tools.javac.code.Symtab syms
        15: .line 202
      StackMap locals: jdk.jshell.TaskFactory jdk.jshell.TaskFactory$Worker java.util.function.BiFunction javax.tools.DiagnosticCollector com.sun.source.util.JavacTask com.sun.tools.javac.api.JavacTaskImpl com.sun.tools.javac.util.Context top java.lang.Object
      StackMap stack:
            aload 8
            areturn
        16: .line 203
      StackMap locals: jdk.jshell.TaskFactory jdk.jshell.TaskFactory$Worker java.util.function.BiFunction javax.tools.DiagnosticCollector com.sun.source.util.JavacTask com.sun.tools.javac.api.JavacTaskImpl com.sun.tools.javac.util.Context
      StackMap stack: java.lang.Throwable
            astore 7
        17: .line 205
            aload 6 /* context */
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            astore 9 /* syms */
        start local 9 // com.sun.tools.javac.code.Symtab syms
        18: .line 206
            aload 6 /* context */
            invokestatic com.sun.tools.javac.util.Names.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Names;
            astore 10 /* names */
        start local 10 // com.sun.tools.javac.util.Names names
        19: .line 207
            aload 9 /* syms */
            aload 9 /* syms */
            getfield com.sun.tools.javac.code.Symtab.unnamedModule:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 10 /* names */
            ldc "REPL"
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Symtab.getPackage:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            astore 11 /* repl */
        start local 11 // com.sun.tools.javac.code.Symbol$PackageSymbol repl
        20: .line 208
            aload 11 /* repl */
            ifnull 28
        21: .line 209
            aload 9 /* syms */
            invokevirtual com.sun.tools.javac.code.Symtab.getAllClasses:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 13
            goto 25
      StackMap locals: jdk.jshell.TaskFactory jdk.jshell.TaskFactory$Worker java.util.function.BiFunction javax.tools.DiagnosticCollector com.sun.source.util.JavacTask com.sun.tools.javac.api.JavacTaskImpl com.sun.tools.javac.util.Context java.lang.Throwable top com.sun.tools.javac.code.Symtab com.sun.tools.javac.util.Names com.sun.tools.javac.code.Symbol$PackageSymbol top java.util.Iterator
      StackMap stack:
        22: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 12 /* clazz */
        start local 12 // com.sun.tools.javac.code.Symbol$ClassSymbol clazz
        23: .line 210
            aload 12 /* clazz */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.packge:()Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            aload 11 /* repl */
            if_acmpne 25
        24: .line 211
            aload 9 /* syms */
            aload 9 /* syms */
            getfield com.sun.tools.javac.code.Symtab.unnamedModule:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 12 /* clazz */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flatName:()Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Symtab.removeClass:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)V
        end local 12 // com.sun.tools.javac.code.Symbol$ClassSymbol clazz
        25: .line 209
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        26: .line 214
            aload 11 /* repl */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$PackageSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
        27: .line 215
            aload 11 /* repl */
            aload 6 /* context */
            invokestatic com.sun.tools.javac.code.ClassFinder.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/ClassFinder;
            invokevirtual com.sun.tools.javac.code.ClassFinder.getCompleter:()Lcom/sun/tools/javac/code/Symbol$Completer;
            putfield com.sun.tools.javac.code.Symbol$PackageSymbol.completer:Lcom/sun/tools/javac/code/Symbol$Completer;
        end local 11 // com.sun.tools.javac.code.Symbol$PackageSymbol repl
        end local 10 // com.sun.tools.javac.util.Names names
        end local 9 // com.sun.tools.javac.code.Symtab syms
        28: .line 217
      StackMap locals: jdk.jshell.TaskFactory jdk.jshell.TaskFactory$Worker java.util.function.BiFunction javax.tools.DiagnosticCollector com.sun.source.util.JavacTask com.sun.tools.javac.api.JavacTaskImpl com.sun.tools.javac.util.Context java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        end local 6 // com.sun.tools.javac.util.Context context
        end local 5 // com.sun.tools.javac.api.JavacTaskImpl jti
        end local 4 // com.sun.source.util.JavacTask task
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   29     0     this  Ljdk/jshell/TaskFactory;
            0   29     4     task  Lcom/sun/source/util/JavacTask;
            1   29     5      jti  Lcom/sun/tools/javac/api/JavacTaskImpl;
            2   29     6  context  Lcom/sun/tools/javac/util/Context;
            5   15     9     syms  Lcom/sun/tools/javac/code/Symtab;
           18   28     9     syms  Lcom/sun/tools/javac/code/Symtab;
            6   15    10    names  Lcom/sun/tools/javac/util/Names;
           19   28    10    names  Lcom/sun/tools/javac/util/Names;
            7   15    11     repl  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
           20   28    11     repl  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
           10   12    12    clazz  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
           23   25    12    clazz  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
      Exception table:
        from    to  target  type
           3     4      16  any

  private java.lang.Object lambda$5(jdk.jshell.TaskFactory$Worker, java.lang.String, jdk.jshell.TaskFactory$ParseTask);
    descriptor: (Ljdk/jshell/TaskFactory$Worker;Ljava/lang/String;Ljdk/jshell/TaskFactory$ParseTask;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.jshell.TaskFactory this
        start local 3 // jdk.jshell.TaskFactory$ParseTask pt
         0: .line 228
            aload 3 /* pt */
            invokevirtual jdk.jshell.TaskFactory$ParseTask.units:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 4
         1: .line 229
            aload 3 /* pt */
            invokevirtual jdk.jshell.TaskFactory$ParseTask.units:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.source.tree.Tree
            invokeinterface com.sun.source.tree.Tree.getKind:()Lcom/sun/source/tree/Tree$Kind;
            getstatic com.sun.source.tree.Tree$Kind.EXPRESSION_STATEMENT:Lcom/sun/source/tree/Tree$Kind;
            if_acmpne 4
         2: .line 230
            aload 3 /* pt */
            invokevirtual jdk.jshell.TaskFactory$ParseTask.getDiagnostics:()Ljdk/jshell/DiagList;
            invokevirtual jdk.jshell.DiagList.hasOtherThanNotStatementErrors:()Z
            ifeq 4
         3: .line 234
            aload 0 /* this */
            aload 2
            iconst_1
            aload 1
            aload 3 /* pt */
            invokedynamic withTask(Ljdk/jshell/TaskFactory$Worker;Ljdk/jshell/TaskFactory$ParseTask;)Ljdk/jshell/TaskFactory$Worker;
              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:
                  (Ljdk/jshell/TaskFactory$BaseTask;)Ljava/lang/Object;
                  jdk/jshell/TaskFactory.lambda$6(Ljdk/jshell/TaskFactory$Worker;Ljdk/jshell/TaskFactory$ParseTask;Ljdk/jshell/TaskFactory$ParseTask;)Ljava/lang/Object; (6)
                  (Ljdk/jshell/TaskFactory$ParseTask;)Ljava/lang/Object;
            invokevirtual jdk.jshell.TaskFactory.parse:(Ljava/lang/String;ZLjdk/jshell/TaskFactory$Worker;)Ljava/lang/Object;
            areturn
         4: .line 242
      StackMap locals:
      StackMap stack:
            aload 1
            aload 3 /* pt */
            invokeinterface jdk.jshell.TaskFactory$Worker.withTask:(Ljdk/jshell/TaskFactory$BaseTask;)Ljava/lang/Object;
            areturn
        end local 3 // jdk.jshell.TaskFactory$ParseTask pt
        end local 0 // jdk.jshell.TaskFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/jshell/TaskFactory;
            0    5     3    pt  Ljdk/jshell/TaskFactory$ParseTask;

  private static java.lang.Object lambda$6(jdk.jshell.TaskFactory$Worker, jdk.jshell.TaskFactory$ParseTask, jdk.jshell.TaskFactory$ParseTask);
    descriptor: (Ljdk/jshell/TaskFactory$Worker;Ljdk/jshell/TaskFactory$ParseTask;Ljdk/jshell/TaskFactory$ParseTask;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // jdk.jshell.TaskFactory$ParseTask ept
         0: .line 235
            aload 2 /* ept */
            invokevirtual jdk.jshell.TaskFactory$ParseTask.getDiagnostics:()Ljdk/jshell/DiagList;
            invokevirtual jdk.jshell.DiagList.hasOtherThanNotStatementErrors:()Z
            ifne 2
         1: .line 236
            aload 0
            aload 2 /* ept */
            invokeinterface jdk.jshell.TaskFactory$Worker.withTask:(Ljdk/jshell/TaskFactory$BaseTask;)Ljava/lang/Object;
            areturn
         2: .line 238
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1
            invokeinterface jdk.jshell.TaskFactory$Worker.withTask:(Ljdk/jshell/TaskFactory$BaseTask;)Ljava/lang/Object;
            areturn
        end local 2 // jdk.jshell.TaskFactory$ParseTask ept
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2   ept  Ljdk/jshell/TaskFactory$ParseTask;
}
SourceFile: "TaskFactory.java"
NestMembers:
  jdk.jshell.TaskFactory$AnalyzeTask  jdk.jshell.TaskFactory$BaseTask  jdk.jshell.TaskFactory$CompileTask  jdk.jshell.TaskFactory$ParseTask  jdk.jshell.TaskFactory$SourceHandler  jdk.jshell.TaskFactory$StringSourceHandler  jdk.jshell.TaskFactory$StringSourceHandler$1  jdk.jshell.TaskFactory$TaskListenerImpl  jdk.jshell.TaskFactory$Worker  jdk.jshell.TaskFactory$WrapSourceHandler
InnerClasses:
  public final Kind = com.sun.source.tree.Tree$Kind of com.sun.source.tree.Tree
  public abstract Worker = com.sun.tools.javac.api.JavacTaskPool$Worker of com.sun.tools.javac.api.JavacTaskPool
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public abstract Completer = com.sun.tools.javac.code.Symbol$Completer of com.sun.tools.javac.code.Symbol
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public PackageSymbol = com.sun.tools.javac.code.Symbol$PackageSymbol of com.sun.tools.javac.code.Symbol
  public final Version = java.lang.Runtime$Version of java.lang.Runtime
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  AnalyzeTask = jdk.jshell.TaskFactory$AnalyzeTask of jdk.jshell.TaskFactory
  abstract BaseTask = jdk.jshell.TaskFactory$BaseTask of jdk.jshell.TaskFactory
  CompileTask = jdk.jshell.TaskFactory$CompileTask of jdk.jshell.TaskFactory
  ParseTask = jdk.jshell.TaskFactory$ParseTask of jdk.jshell.TaskFactory
  private abstract SourceHandler = jdk.jshell.TaskFactory$SourceHandler of jdk.jshell.TaskFactory
  private StringSourceHandler = jdk.jshell.TaskFactory$StringSourceHandler of jdk.jshell.TaskFactory
  private final TaskListenerImpl = jdk.jshell.TaskFactory$TaskListenerImpl of jdk.jshell.TaskFactory
  abstract Worker = jdk.jshell.TaskFactory$Worker of jdk.jshell.TaskFactory
  private WrapSourceHandler = jdk.jshell.TaskFactory$WrapSourceHandler of jdk.jshell.TaskFactory