class jdk.jshell.TaskFactory$CompileTask extends jdk.jshell.TaskFactory$BaseTask
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.jshell.TaskFactory$CompileTask
  super_class: jdk.jshell.TaskFactory$BaseTask
{
  private final java.util.Map<jdk.jshell.OuterWrap, java.util.List<jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject>> classObjs;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljdk/jshell/OuterWrap;Ljava/util/List<Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;>;>;

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

  void <init>(java.util.Collection<jdk.jshell.OuterWrap>);
    descriptor: (Ljdk/jshell/TaskFactory;Ljava/util/Collection;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // jdk.jshell.TaskFactory$CompileTask this
        start local 2 // java.util.Collection wraps
         0: .line 289
            aload 0 /* this */
            aload 1
            putfield jdk.jshell.TaskFactory$CompileTask.this$0:Ljdk/jshell/TaskFactory;
         1: .line 290
            aload 0 /* this */
            aload 1
            aload 2 /* wraps */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            new jdk.jshell.TaskFactory$WrapSourceHandler
            dup
            aload 1
            invokespecial jdk.jshell.TaskFactory$WrapSourceHandler.<init>:(Ljdk/jshell/TaskFactory;)V
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
         2: .line 291
            ldc "-Xlint:unchecked"
            aastore
            dup
            iconst_1
            ldc "-proc:none"
            aastore
            dup
            iconst_2
            ldc "-parameters"
            aastore
            invokespecial jdk.jshell.TaskFactory$BaseTask.<init>:(Ljdk/jshell/TaskFactory;Ljava/util/stream/Stream;Ljdk/jshell/TaskFactory$SourceHandler;[Ljava/lang/String;)V
         3: .line 287
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.jshell.TaskFactory$CompileTask.classObjs:Ljava/util/Map;
         4: .line 292
            return
        end local 2 // java.util.Collection wraps
        end local 0 // jdk.jshell.TaskFactory$CompileTask this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljdk/jshell/TaskFactory$CompileTask;
            0    5     2  wraps  Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;
    Signature: (Ljava/util/Collection<Ljdk/jshell/OuterWrap;>;)V
    MethodParameters:
        Name  Flags
      this$0  final
      wraps   final

  boolean compile();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // jdk.jshell.TaskFactory$CompileTask this
         0: .line 295
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$CompileTask.this$0:Ljdk/jshell/TaskFactory;
            getfield jdk.jshell.TaskFactory.fileManager:Ljdk/jshell/MemoryFileManager;
            aload 0 /* this */
            invokedynamic newClassFile(Ljdk/jshell/TaskFactory$CompileTask;)Ljdk/jshell/MemoryFileManager$ClassFileCreationListener;
              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/MemoryFileManager$OutputMemoryJavaFileObject;Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;Ljavax/tools/FileObject;)V
                  jdk/jshell/TaskFactory$CompileTask.listenForNewClassFile(Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;Ljavax/tools/FileObject;)V (7)
                  (Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;Ljavax/tools/FileObject;)V
            invokevirtual jdk.jshell.MemoryFileManager.registerClassFileCreationListener:(Ljdk/jshell/MemoryFileManager$ClassFileCreationListener;)V
         1: .line 296
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$CompileTask.task:Lcom/sun/tools/javac/api/JavacTaskImpl;
            invokevirtual com.sun.tools.javac.api.JavacTaskImpl.call:()Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 2 /* result */
        start local 2 // boolean result
         2: .line 297
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$CompileTask.this$0:Ljdk/jshell/TaskFactory;
            getfield jdk.jshell.TaskFactory.fileManager:Ljdk/jshell/MemoryFileManager;
            aconst_null
            invokevirtual jdk.jshell.MemoryFileManager.registerClassFileCreationListener:(Ljdk/jshell/MemoryFileManager$ClassFileCreationListener;)V
         3: .line 298
            iload 2 /* result */
            ireturn
        end local 2 // boolean result
        end local 0 // jdk.jshell.TaskFactory$CompileTask this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/jshell/TaskFactory$CompileTask;
            2    4     2  result  Z

  java.util.List<java.lang.String> classList(jdk.jshell.OuterWrap);
    descriptor: (Ljdk/jshell/OuterWrap;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // jdk.jshell.TaskFactory$CompileTask this
        start local 1 // jdk.jshell.OuterWrap w
         0: .line 304
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$CompileTask.classObjs:Ljava/util/Map;
            aload 1 /* w */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* l */
        start local 2 // java.util.List l
         1: .line 305
            aload 2 /* l */
            ifnonnull 3
         2: .line 306
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         3: .line 308
      StackMap locals: java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* list */
        start local 3 // java.util.List list
         4: .line 309
            aload 2 /* l */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: jdk.jshell.TaskFactory$CompileTask jdk.jshell.OuterWrap java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject
            astore 4 /* fo */
        start local 4 // jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject fo
         6: .line 310
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$CompileTask.this$0:Ljdk/jshell/TaskFactory;
            getfield jdk.jshell.TaskFactory.state:Ljdk/jshell/JShell;
            getfield jdk.jshell.JShell.classTracker:Ljdk/jshell/ClassTracker;
            aload 4 /* fo */
            invokevirtual jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject.getName:()Ljava/lang/String;
            aload 4 /* fo */
            invokevirtual jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject.getBytes:()[B
            invokevirtual jdk.jshell.ClassTracker.setCurrentBytes:(Ljava/lang/String;[B)V
         7: .line 311
            aload 3 /* list */
            aload 4 /* fo */
            invokevirtual jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject.getName:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject fo
         8: .line 309
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 313
            aload 3 /* list */
            areturn
        end local 3 // java.util.List list
        end local 2 // java.util.List l
        end local 1 // jdk.jshell.OuterWrap w
        end local 0 // jdk.jshell.TaskFactory$CompileTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/jshell/TaskFactory$CompileTask;
            0   10     1     w  Ljdk/jshell/OuterWrap;
            1   10     2     l  Ljava/util/List<Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;>;
            4   10     3  list  Ljava/util/List<Ljava/lang/String;>;
            6    8     4    fo  Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;
    Signature: (Ljdk/jshell/OuterWrap;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      w     

  private void listenForNewClassFile(jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject, javax.tools.JavaFileManager$Location, java.lang.String, javax.tools.JavaFileObject$Kind, javax.tools.FileObject);
    descriptor: (Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;Ljavax/tools/FileObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // jdk.jshell.TaskFactory$CompileTask this
        start local 1 // jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject jfo
        start local 2 // javax.tools.JavaFileManager$Location location
        start local 3 // java.lang.String className
        start local 4 // javax.tools.JavaFileObject$Kind kind
        start local 5 // javax.tools.FileObject sibling
         0: .line 319
            aload 2 /* location */
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            if_acmpne 9
         1: .line 320
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$CompileTask.this$0:Ljdk/jshell/TaskFactory;
            getfield jdk.jshell.TaskFactory.state:Ljdk/jshell/JShell;
            iconst_1
            ldc "Compiler generating class %s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* className */
            aastore
            invokevirtual jdk.jshell.JShell.debug:(ILjava/lang/String;[Ljava/lang/Object;)V
         2: .line 321
            aload 5 /* sibling */
            instanceof jdk.jshell.MemoryFileManager$SourceMemoryJavaFileObject
            ifeq 5
         3: .line 322
            aload 5 /* sibling */
            checkcast jdk.jshell.MemoryFileManager$SourceMemoryJavaFileObject
            invokevirtual jdk.jshell.MemoryFileManager$SourceMemoryJavaFileObject.getOrigin:()Ljava/lang/Object;
            instanceof jdk.jshell.OuterWrap
            ifeq 5
         4: .line 323
            aload 5 /* sibling */
            checkcast jdk.jshell.MemoryFileManager$SourceMemoryJavaFileObject
            invokevirtual jdk.jshell.MemoryFileManager$SourceMemoryJavaFileObject.getOrigin:()Ljava/lang/Object;
            checkcast jdk.jshell.OuterWrap
            goto 6
         5: .line 324
      StackMap locals:
      StackMap stack:
            aconst_null
         6: .line 321
      StackMap locals:
      StackMap stack: jdk.jshell.OuterWrap
            astore 6 /* w */
        start local 6 // jdk.jshell.OuterWrap w
         7: .line 325
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$CompileTask.classObjs:Ljava/util/Map;
            aload 6 /* w */
            invokedynamic apply()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$CompileTask.lambda$1(Ljdk/jshell/OuterWrap;Ljava/util/List;)Ljava/util/List; (6)
                  (Ljdk/jshell/OuterWrap;Ljava/util/List;)Ljava/util/List;
            invokeinterface java.util.Map.compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
            checkcast java.util.List
         8: .line 326
            aload 1 /* jfo */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // jdk.jshell.OuterWrap w
         9: .line 328
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.tools.FileObject sibling
        end local 4 // javax.tools.JavaFileObject$Kind kind
        end local 3 // java.lang.String className
        end local 2 // javax.tools.JavaFileManager$Location location
        end local 1 // jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject jfo
        end local 0 // jdk.jshell.TaskFactory$CompileTask this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Ljdk/jshell/TaskFactory$CompileTask;
            0   10     1        jfo  Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;
            0   10     2   location  Ljavax/tools/JavaFileManager$Location;
            0   10     3  className  Ljava/lang/String;
            0   10     4       kind  Ljavax/tools/JavaFileObject$Kind;
            0   10     5    sibling  Ljavax/tools/FileObject;
            7    9     6          w  Ljdk/jshell/OuterWrap;
    MethodParameters:
           Name  Flags
      jfo        
      location   
      className  
      kind       
      sibling    

  java.lang.Iterable<? extends com.sun.source.tree.CompilationUnitTree> cuTrees();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jshell.TaskFactory$CompileTask this
         0: .line 332
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // jdk.jshell.TaskFactory$CompileTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TaskFactory$CompileTask;
    Signature: ()Ljava/lang/Iterable<+Lcom/sun/source/tree/CompilationUnitTree;>;

  private static java.util.List lambda$1(jdk.jshell.OuterWrap, java.util.List);
    descriptor: (Ljdk/jshell/OuterWrap;Ljava/util/List;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.OuterWrap k
        start local 1 // java.util.List v
         0: .line 325
            aload 1 /* v */
            ifnonnull 1
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* v */
      StackMap locals:
      StackMap stack: java.util.List
         2: areturn
        end local 1 // java.util.List v
        end local 0 // jdk.jshell.OuterWrap k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     k  Ljdk/jshell/OuterWrap;
            0    3     1     v  Ljava/util/List<Ljdk/jshell/MemoryFileManager$OutputMemoryJavaFileObject;>;
}
SourceFile: "TaskFactory.java"
NestHost: jdk.jshell.TaskFactory
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject
  abstract ClassFileCreationListener = jdk.jshell.MemoryFileManager$ClassFileCreationListener of jdk.jshell.MemoryFileManager
  OutputMemoryJavaFileObject = jdk.jshell.MemoryFileManager$OutputMemoryJavaFileObject of jdk.jshell.MemoryFileManager
  SourceMemoryJavaFileObject = jdk.jshell.MemoryFileManager$SourceMemoryJavaFileObject of jdk.jshell.MemoryFileManager
  abstract BaseTask = jdk.jshell.TaskFactory$BaseTask of jdk.jshell.TaskFactory
  CompileTask = jdk.jshell.TaskFactory$CompileTask of jdk.jshell.TaskFactory
  private abstract SourceHandler = jdk.jshell.TaskFactory$SourceHandler of jdk.jshell.TaskFactory
  private WrapSourceHandler = jdk.jshell.TaskFactory$WrapSourceHandler of jdk.jshell.TaskFactory