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>(jdk.jshell.TaskFactory$SourceHandler<jdk.jshell.OuterWrap>, com.sun.tools.javac.api.JavacTaskImpl, javax.tools.DiagnosticCollector<javax.tools.JavaFileObject>);
    descriptor: (Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$SourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // jdk.jshell.TaskFactory$CompileTask this
        start local 2 // jdk.jshell.TaskFactory$SourceHandler sh
        start local 3 // com.sun.tools.javac.api.JavacTaskImpl jti
        start local 4 // javax.tools.DiagnosticCollector diagnostics
         0: .line 422
            aload 0 /* this */
            aload 1
            putfield jdk.jshell.TaskFactory$CompileTask.this$0:Ljdk/jshell/TaskFactory;
         1: .line 423
            aload 0 /* this */
            aload 1
            aload 2 /* sh */
            aload 3 /* jti */
            aload 4 /* diagnostics */
            invokespecial jdk.jshell.TaskFactory$BaseTask.<init>:(Ljdk/jshell/TaskFactory;Ljdk/jshell/TaskFactory$SourceHandler;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector;)V
         2: .line 418
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.jshell.TaskFactory$CompileTask.classObjs:Ljava/util/Map;
         3: .line 424
            return
        end local 4 // javax.tools.DiagnosticCollector diagnostics
        end local 3 // com.sun.tools.javac.api.JavacTaskImpl jti
        end local 2 // jdk.jshell.TaskFactory$SourceHandler sh
        end local 0 // jdk.jshell.TaskFactory$CompileTask this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljdk/jshell/TaskFactory$CompileTask;
            0    4     2           sh  Ljdk/jshell/TaskFactory$SourceHandler<Ljdk/jshell/OuterWrap;>;
            0    4     3          jti  Lcom/sun/tools/javac/api/JavacTaskImpl;
            0    4     4  diagnostics  Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;
    Signature: (Ljdk/jshell/TaskFactory$SourceHandler<Ljdk/jshell/OuterWrap;>;Lcom/sun/tools/javac/api/JavacTaskImpl;Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;)V
    MethodParameters:
             Name  Flags
      this$0       final
      sh           
      jti          
      diagnostics  

  boolean compile();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // jdk.jshell.TaskFactory$CompileTask this
         0: .line 427
            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 428
            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 429
            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 430
            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 436
            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 437
            aload 2 /* l */
            ifnonnull 3
         2: .line 438
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         3: .line 440
      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 441
            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 442
            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 443
            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 441
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 445
            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 451
            aload 2 /* location */
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            if_acmpne 9
         1: .line 452
            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 453
            aload 5 /* sibling */
            instanceof jdk.jshell.MemoryFileManager$SourceMemoryJavaFileObject
            ifeq 5
         3: .line 454
            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 455
            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 456
      StackMap locals:
      StackMap stack:
            aconst_null
         6: .line 453
      StackMap locals:
      StackMap stack: jdk.jshell.OuterWrap
            astore 6 /* w */
        start local 6 // jdk.jshell.OuterWrap w
         7: .line 457
            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 458
            aload 1 /* jfo */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // jdk.jshell.OuterWrap w
         9: .line 460
      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 464
            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 457
            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