final class jdk.jshell.TaskFactory$TaskListenerImpl implements com.sun.source.util.TaskListener
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jshell.TaskFactory$TaskListenerImpl
  super_class: java.lang.Object
{
  private final com.sun.tools.javac.util.Context context;
    descriptor: Lcom/sun/tools/javac/util/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.Map<com.sun.tools.javac.code.Symbol$VarSymbol, com.sun.tools.javac.code.Type> var2OriginalType;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/code/Symbol$VarSymbol;Lcom/sun/tools/javac/code/Type;>;

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

  public void <init>(com.sun.tools.javac.util.Context, jdk.jshell.JShell);
    descriptor: (Lcom/sun/tools/javac/util/Context;Ljdk/jshell/JShell;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
        start local 1 // com.sun.tools.javac.util.Context context
        start local 2 // jdk.jshell.JShell state
         0: .line 618
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 616
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.jshell.TaskFactory$TaskListenerImpl.var2OriginalType:Ljava/util/Map;
         2: .line 643
            aload 0 /* this */
            iconst_0
            putfield jdk.jshell.TaskFactory$TaskListenerImpl.variablesSet:Z
         3: .line 619
            aload 0 /* this */
            aload 1 /* context */
            putfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
         4: .line 620
            aload 0 /* this */
            aload 2 /* state */
            putfield jdk.jshell.TaskFactory$TaskListenerImpl.state:Ljdk/jshell/JShell;
         5: .line 621
            return
        end local 2 // jdk.jshell.JShell state
        end local 1 // com.sun.tools.javac.util.Context context
        end local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljdk/jshell/TaskFactory$TaskListenerImpl;
            0    6     1  context  Lcom/sun/tools/javac/util/Context;
            0    6     2    state  Ljdk/jshell/JShell;
    MethodParameters:
         Name  Flags
      context  
      state    

  public void started(com.sun.source.util.TaskEvent);
    descriptor: (Lcom/sun/source/util/TaskEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=9, args_size=2
        start local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
        start local 1 // com.sun.source.util.TaskEvent e
         0: .line 625
            aload 1 /* e */
            invokevirtual com.sun.source.util.TaskEvent.getKind:()Lcom/sun/source/util/TaskEvent$Kind;
            getstatic com.sun.source.util.TaskEvent$Kind.GENERATE:Lcom/sun/source/util/TaskEvent$Kind;
            if_acmpeq 2
         1: .line 626
            return
         2: .line 628
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual com.sun.source.util.TaskEvent.getCompilationUnit:()Lcom/sun/source/tree/CompilationUnitTree;
            invokeinterface com.sun.source.tree.CompilationUnitTree.getTypeDecls:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 14
      StackMap locals: jdk.jshell.TaskFactory$TaskListenerImpl com.sun.source.util.TaskEvent top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.source.tree.Tree
            astore 2 /* clazz */
        start local 2 // com.sun.source.tree.Tree clazz
         4: .line 629
            aload 2 /* clazz */
            checkcast com.sun.source.tree.ClassTree
            astore 4 /* ct */
        start local 4 // com.sun.source.tree.ClassTree ct
         5: .line 631
            aload 4 /* ct */
            invokeinterface com.sun.source.tree.ClassTree.getMembers:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 13
      StackMap locals: jdk.jshell.TaskFactory$TaskListenerImpl com.sun.source.util.TaskEvent com.sun.source.tree.Tree java.util.Iterator com.sun.source.tree.ClassTree top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.source.tree.Tree
            astore 5 /* member */
        start local 5 // com.sun.source.tree.Tree member
         7: .line 632
            aload 5 /* member */
            invokeinterface com.sun.source.tree.Tree.getKind:()Lcom/sun/source/tree/Tree$Kind;
            getstatic com.sun.source.tree.Tree$Kind.VARIABLE:Lcom/sun/source/tree/Tree$Kind;
            if_acmpeq 9
         8: .line 633
            goto 13
         9: .line 634
      StackMap locals: jdk.jshell.TaskFactory$TaskListenerImpl com.sun.source.util.TaskEvent com.sun.source.tree.Tree java.util.Iterator com.sun.source.tree.ClassTree com.sun.source.tree.Tree java.util.Iterator
      StackMap stack:
            aload 5 /* member */
            checkcast com.sun.tools.javac.tree.JCTree$JCVariableDecl
            getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.sym:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
            astore 7 /* vsym */
        start local 7 // com.sun.tools.javac.code.Symbol$VarSymbol vsym
        10: .line 635
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.var2OriginalType:Ljava/util/Map;
            aload 7 /* vsym */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 8 /* original */
        start local 8 // com.sun.tools.javac.code.Type original
        11: .line 636
            aload 8 /* original */
            ifnull 13
        12: .line 637
            aload 7 /* vsym */
            aload 8 /* original */
            putfield com.sun.tools.javac.code.Symbol$VarSymbol.type:Lcom/sun/tools/javac/code/Type;
        end local 8 // com.sun.tools.javac.code.Type original
        end local 7 // com.sun.tools.javac.code.Symbol$VarSymbol vsym
        end local 5 // com.sun.source.tree.Tree member
        13: .line 631
      StackMap locals: jdk.jshell.TaskFactory$TaskListenerImpl com.sun.source.util.TaskEvent com.sun.source.tree.Tree java.util.Iterator com.sun.source.tree.ClassTree top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // com.sun.source.tree.ClassTree ct
        end local 2 // com.sun.source.tree.Tree clazz
        14: .line 628
      StackMap locals: jdk.jshell.TaskFactory$TaskListenerImpl com.sun.source.util.TaskEvent top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        15: .line 641
            return
        end local 1 // com.sun.source.util.TaskEvent e
        end local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Ljdk/jshell/TaskFactory$TaskListenerImpl;
            0   16     1         e  Lcom/sun/source/util/TaskEvent;
            4   14     2     clazz  Lcom/sun/source/tree/Tree;
            5   14     4        ct  Lcom/sun/source/tree/ClassTree;
            7   13     5    member  Lcom/sun/source/tree/Tree;
           10   13     7      vsym  Lcom/sun/tools/javac/code/Symbol$VarSymbol;
           11   13     8  original  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      e     

  public void finished(com.sun.source.util.TaskEvent);
    descriptor: (Lcom/sun/source/util/TaskEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
        start local 1 // com.sun.source.util.TaskEvent e
         0: .line 647
            aload 1 /* e */
            invokevirtual com.sun.source.util.TaskEvent.getKind:()Lcom/sun/source/util/TaskEvent$Kind;
            getstatic com.sun.source.util.TaskEvent$Kind.ENTER:Lcom/sun/source/util/TaskEvent$Kind;
            if_acmpne 1
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.variablesSet:Z
            ifeq 2
         1: .line 648
      StackMap locals:
      StackMap stack:
            return
         2: .line 649
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.state:Ljdk/jshell/JShell;
            getfield jdk.jshell.JShell.maps:Ljdk/jshell/SnippetMaps;
         3: .line 650
            invokevirtual jdk.jshell.SnippetMaps.snippetList:()Ljava/util/List;
         4: .line 651
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         5: .line 652
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/jshell/TaskFactory$TaskListenerImpl.lambda$0(Ljdk/jshell/Snippet;)Z (6)
                  (Ljdk/jshell/Snippet;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         6: .line 653
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/jshell/TaskFactory$TaskListenerImpl.lambda$1(Ljdk/jshell/Snippet;)Z (6)
                  (Ljdk/jshell/Snippet;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         7: .line 654
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/jshell/TaskFactory$TaskListenerImpl.lambda$2(Ljdk/jshell/Snippet;)Z (6)
                  (Ljdk/jshell/Snippet;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         8: .line 656
            aload 0 /* this */
            invokedynamic accept(Ljdk/jshell/TaskFactory$TaskListenerImpl;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/jshell/TaskFactory$TaskListenerImpl.lambda$3(Ljdk/jshell/Snippet;)V (7)
                  (Ljdk/jshell/Snippet;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         9: .line 657
            aload 0 /* this */
            iconst_1
            putfield jdk.jshell.TaskFactory$TaskListenerImpl.variablesSet:Z
        10: .line 658
            return
        end local 1 // com.sun.source.util.TaskEvent e
        end local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljdk/jshell/TaskFactory$TaskListenerImpl;
            0   11     1     e  Lcom/sun/source/util/TaskEvent;
    MethodParameters:
      Name  Flags
      e     

  private void setVariableType(jdk.jshell.VarSnippet);
    descriptor: (Ljdk/jshell/VarSnippet;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=19, args_size=2
        start local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
        start local 1 // jdk.jshell.VarSnippet s
         0: .line 664
            aload 1 /* s */
            getfield jdk.jshell.VarSnippet.fullTypeName:Ljava/lang/String;
            astore 2 /* typeName */
        start local 2 // java.lang.String typeName
         1: .line 666
            aload 2 /* typeName */
            ifnonnull 3
         2: .line 667
            return
         3: .line 669
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            astore 3 /* syms */
        start local 3 // com.sun.tools.javac.code.Symtab syms
         4: .line 670
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
            invokestatic com.sun.tools.javac.util.Names.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Names;
            astore 4 /* names */
        start local 4 // com.sun.tools.javac.util.Names names
         5: .line 671
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
            invokestatic com.sun.tools.javac.util.Log.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Log;
            astore 5 /* log */
        start local 5 // com.sun.tools.javac.util.Log log
         6: .line 672
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
            invokestatic com.sun.tools.javac.parser.ParserFactory.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/parser/ParserFactory;
            astore 6 /* parserFactory */
        start local 6 // com.sun.tools.javac.parser.ParserFactory parserFactory
         7: .line 673
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
            invokestatic com.sun.tools.javac.comp.Attr.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Attr;
            astore 7 /* attr */
        start local 7 // com.sun.tools.javac.comp.Attr attr
         8: .line 674
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
            invokestatic com.sun.tools.javac.comp.Enter.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Enter;
            astore 8 /* enter */
        start local 8 // com.sun.tools.javac.comp.Enter enter
         9: .line 675
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.context:Lcom/sun/tools/javac/util/Context;
            invokestatic com.sun.tools.javac.comp.Resolve.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Resolve;
            checkcast jdk.jshell.TaskFactory$DisableAccessibilityResolve
            astore 9 /* rs */
        start local 9 // jdk.jshell.TaskFactory$DisableAccessibilityResolve rs
        10: .line 678
            aload 3 /* syms */
            aload 3 /* syms */
            getfield com.sun.tools.javac.code.Symtab.unnamedModule:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 4 /* names */
            aload 1 /* s */
            invokevirtual jdk.jshell.VarSnippet.classFullName:()Ljava/lang/String;
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Symtab.getClass:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            astore 10 /* clazz */
        start local 10 // com.sun.tools.javac.code.Symbol$ClassSymbol clazz
        11: .line 679
            aload 10 /* clazz */
            ifnull 12
            aload 10 /* clazz */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.isCompleted:()Z
            ifne 13
        12: .line 680
      StackMap locals: jdk.jshell.TaskFactory$TaskListenerImpl jdk.jshell.VarSnippet java.lang.String com.sun.tools.javac.code.Symtab com.sun.tools.javac.util.Names com.sun.tools.javac.util.Log com.sun.tools.javac.parser.ParserFactory com.sun.tools.javac.comp.Attr com.sun.tools.javac.comp.Enter jdk.jshell.TaskFactory$DisableAccessibilityResolve com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            return
        13: .line 681
      StackMap locals:
      StackMap stack:
            aload 10 /* clazz */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            aload 4 /* names */
            aload 1 /* s */
            invokevirtual jdk.jshell.VarSnippet.name:()Ljava/lang/String;
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            invokedynamic accepts()Lcom/sun/tools/javac/util/Filter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/jshell/TaskFactory$TaskListenerImpl.lambda$4(Lcom/sun/tools/javac/code/Symbol;)Z (6)
                  (Lcom/sun/tools/javac/code/Symbol;)Z
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.findFirst:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/code/Symbol;
            checkcast com.sun.tools.javac.code.Symbol$VarSymbol
            astore 11 /* field */
        start local 11 // com.sun.tools.javac.code.Symbol$VarSymbol field
        14: .line 683
            aload 11 /* field */
            ifnull 31
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.var2OriginalType:Ljava/util/Map;
            aload 11 /* field */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 31
        15: .line 686
            aload 5 /* log */
            aconst_null
            invokevirtual com.sun.tools.javac.util.Log.useSource:(Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            astore 12 /* prev */
        start local 12 // javax.tools.JavaFileObject prev
        16: .line 687
            new com.sun.tools.javac.util.Log$DiscardDiagnosticHandler
            dup
            aload 5 /* log */
            invokespecial com.sun.tools.javac.util.Log$DiscardDiagnosticHandler.<init>:(Lcom/sun/tools/javac/util/Log;)V
            astore 13 /* h */
        start local 13 // com.sun.tools.javac.util.Log$DiscardDiagnosticHandler h
        17: .line 691
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")x\u0000"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 2 /* typeName */
            invokevirtual java.lang.String.length:()I
            iconst_3
            iadd
            invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
            astore 14 /* buf */
        start local 14 // java.nio.CharBuffer buf
        18: .line 692
            aload 6 /* parserFactory */
            aload 14 /* buf */
            iconst_0
            iconst_0
            iconst_0
            invokevirtual com.sun.tools.javac.parser.ParserFactory.newParser:(Ljava/lang/CharSequence;ZZZ)Lcom/sun/tools/javac/parser/JavacParser;
            astore 15 /* parser */
        start local 15 // com.sun.tools.javac.parser.Parser parser
        19: .line 693
            aload 15 /* parser */
            invokeinterface com.sun.tools.javac.parser.Parser.parseExpression:()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            astore 16 /* expr */
        start local 16 // com.sun.tools.javac.tree.JCTree$JCExpression expr
        20: .line 694
            aload 16 /* expr */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.TYPECAST:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifeq 29
        21: .line 696
            aload 0 /* this */
            getfield jdk.jshell.TaskFactory$TaskListenerImpl.var2OriginalType:Ljava/util/Map;
            aload 11 /* field */
            aload 11 /* field */
            getfield com.sun.tools.javac.code.Symbol$VarSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 698
            aload 16 /* expr */
            checkcast com.sun.tools.javac.tree.JCTree$JCTypeCast
            astore 17 /* tree */
        start local 17 // com.sun.tools.javac.tree.JCTree$JCTypeCast tree
        23: .line 699
            aload 9 /* rs */
            aload 11 /* field */
            aload 7 /* attr */
            aload 17 /* tree */
            aload 8 /* enter */
            invokedynamic run(Lcom/sun/tools/javac/code/Symbol$VarSymbol;Lcom/sun/tools/javac/comp/Attr;Lcom/sun/tools/javac/tree/JCTree$JCTypeCast;Lcom/sun/tools/javac/comp/Enter;)Ljava/lang/Runnable;
              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:
                  ()V
                  jdk/jshell/TaskFactory$TaskListenerImpl.lambda$5(Lcom/sun/tools/javac/code/Symbol$VarSymbol;Lcom/sun/tools/javac/comp/Attr;Lcom/sun/tools/javac/tree/JCTree$JCTypeCast;Lcom/sun/tools/javac/comp/Enter;)V (6)
                  ()V
            invokevirtual jdk.jshell.TaskFactory$DisableAccessibilityResolve.runWithoutAccessChecks:(Ljava/lang/Runnable;)V
        end local 17 // com.sun.tools.javac.tree.JCTree$JCTypeCast tree
        end local 16 // com.sun.tools.javac.tree.JCTree$JCExpression expr
        end local 15 // com.sun.tools.javac.parser.Parser parser
        end local 14 // java.nio.CharBuffer buf
        24: .line 704
            goto 29
      StackMap locals: jdk.jshell.TaskFactory$TaskListenerImpl jdk.jshell.VarSnippet java.lang.String com.sun.tools.javac.code.Symtab com.sun.tools.javac.util.Names com.sun.tools.javac.util.Log com.sun.tools.javac.parser.ParserFactory com.sun.tools.javac.comp.Attr com.sun.tools.javac.comp.Enter jdk.jshell.TaskFactory$DisableAccessibilityResolve com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$VarSymbol javax.tools.JavaFileObject com.sun.tools.javac.util.Log$DiscardDiagnosticHandler
      StackMap stack: java.lang.Throwable
        25: astore 18
        26: .line 705
            aload 5 /* log */
            aload 13 /* h */
            invokevirtual com.sun.tools.javac.util.Log.popDiagnosticHandler:(Lcom/sun/tools/javac/util/Log$DiagnosticHandler;)V
        27: .line 706
            aload 5 /* log */
            aload 12 /* prev */
            invokevirtual com.sun.tools.javac.util.Log.useSource:(Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            pop
        28: .line 707
            aload 18
            athrow
        29: .line 705
      StackMap locals:
      StackMap stack:
            aload 5 /* log */
            aload 13 /* h */
            invokevirtual com.sun.tools.javac.util.Log.popDiagnosticHandler:(Lcom/sun/tools/javac/util/Log$DiagnosticHandler;)V
        30: .line 706
            aload 5 /* log */
            aload 12 /* prev */
            invokevirtual com.sun.tools.javac.util.Log.useSource:(Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            pop
        end local 13 // com.sun.tools.javac.util.Log$DiscardDiagnosticHandler h
        end local 12 // javax.tools.JavaFileObject prev
        31: .line 709
      StackMap locals:
      StackMap stack:
            return
        end local 11 // com.sun.tools.javac.code.Symbol$VarSymbol field
        end local 10 // com.sun.tools.javac.code.Symbol$ClassSymbol clazz
        end local 9 // jdk.jshell.TaskFactory$DisableAccessibilityResolve rs
        end local 8 // com.sun.tools.javac.comp.Enter enter
        end local 7 // com.sun.tools.javac.comp.Attr attr
        end local 6 // com.sun.tools.javac.parser.ParserFactory parserFactory
        end local 5 // com.sun.tools.javac.util.Log log
        end local 4 // com.sun.tools.javac.util.Names names
        end local 3 // com.sun.tools.javac.code.Symtab syms
        end local 2 // java.lang.String typeName
        end local 1 // jdk.jshell.VarSnippet s
        end local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Ljdk/jshell/TaskFactory$TaskListenerImpl;
            0   32     1              s  Ljdk/jshell/VarSnippet;
            1   32     2       typeName  Ljava/lang/String;
            4   32     3           syms  Lcom/sun/tools/javac/code/Symtab;
            5   32     4          names  Lcom/sun/tools/javac/util/Names;
            6   32     5            log  Lcom/sun/tools/javac/util/Log;
            7   32     6  parserFactory  Lcom/sun/tools/javac/parser/ParserFactory;
            8   32     7           attr  Lcom/sun/tools/javac/comp/Attr;
            9   32     8          enter  Lcom/sun/tools/javac/comp/Enter;
           10   32     9             rs  Ljdk/jshell/TaskFactory$DisableAccessibilityResolve;
           11   32    10          clazz  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
           14   32    11          field  Lcom/sun/tools/javac/code/Symbol$VarSymbol;
           16   31    12           prev  Ljavax/tools/JavaFileObject;
           17   31    13              h  Lcom/sun/tools/javac/util/Log$DiscardDiagnosticHandler;
           18   24    14            buf  Ljava/nio/CharBuffer;
           19   24    15         parser  Lcom/sun/tools/javac/parser/Parser;
           20   24    16           expr  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
           23   24    17           tree  Lcom/sun/tools/javac/tree/JCTree$JCTypeCast;
      Exception table:
        from    to  target  type
          17    25      25  any
    MethodParameters:
      Name  Flags
      s     

  private static boolean lambda$0(jdk.jshell.Snippet);
    descriptor: (Ljdk/jshell/Snippet;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jshell.Snippet s
         0: .line 652
            aload 0 /* s */
            invokevirtual jdk.jshell.Snippet.status:()Ljdk/jshell/Snippet$Status;
            getstatic jdk.jshell.Snippet$Status.VALID:Ljdk/jshell/Snippet$Status;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.jshell.Snippet s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     s  Ljdk/jshell/Snippet;

  private static boolean lambda$1(jdk.jshell.Snippet);
    descriptor: (Ljdk/jshell/Snippet;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jshell.Snippet s
         0: .line 653
            aload 0 /* s */
            invokevirtual jdk.jshell.Snippet.kind:()Ljdk/jshell/Snippet$Kind;
            getstatic jdk.jshell.Snippet$Kind.VAR:Ljdk/jshell/Snippet$Kind;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.jshell.Snippet s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     s  Ljdk/jshell/Snippet;

  private static boolean lambda$2(jdk.jshell.Snippet);
    descriptor: (Ljdk/jshell/Snippet;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jshell.Snippet s
         0: .line 654
            aload 0 /* s */
            invokevirtual jdk.jshell.Snippet.subKind:()Ljdk/jshell/Snippet$SubKind;
            getstatic jdk.jshell.Snippet$SubKind.VAR_DECLARATION_WITH_INITIALIZER_SUBKIND:Ljdk/jshell/Snippet$SubKind;
            if_acmpeq 2
         1: .line 655
            aload 0 /* s */
            invokevirtual jdk.jshell.Snippet.subKind:()Ljdk/jshell/Snippet$SubKind;
            getstatic jdk.jshell.Snippet$SubKind.TEMP_VAR_EXPRESSION_SUBKIND:Ljdk/jshell/Snippet$SubKind;
            if_acmpeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 0 // jdk.jshell.Snippet s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     s  Ljdk/jshell/Snippet;

  private void lambda$3(jdk.jshell.Snippet);
    descriptor: (Ljdk/jshell/Snippet;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
        start local 1 // jdk.jshell.Snippet s
         0: .line 656
            aload 0 /* this */
            aload 1 /* s */
            checkcast jdk.jshell.VarSnippet
            invokevirtual jdk.jshell.TaskFactory$TaskListenerImpl.setVariableType:(Ljdk/jshell/VarSnippet;)V
            return
        end local 1 // jdk.jshell.Snippet s
        end local 0 // jdk.jshell.TaskFactory$TaskListenerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TaskFactory$TaskListenerImpl;
            0    1     1     s  Ljdk/jshell/Snippet;

  private static boolean lambda$4(com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol sym
         0: .line 681
            aload 0 /* sym */
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.VAR:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.sun.tools.javac.code.Symbol sym
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   sym  Lcom/sun/tools/javac/code/Symbol;

  private static void lambda$5(com.sun.tools.javac.code.Symbol$VarSymbol, com.sun.tools.javac.comp.Attr, com.sun.tools.javac.tree.JCTree$JCTypeCast, com.sun.tools.javac.comp.Enter);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$VarSymbol;Lcom/sun/tools/javac/comp/Attr;Lcom/sun/tools/javac/tree/JCTree$JCTypeCast;Lcom/sun/tools/javac/comp/Enter;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 700
            aload 0
            aload 1
            aload 2
            getfield com.sun.tools.javac.tree.JCTree$JCTypeCast.clazz:Lcom/sun/tools/javac/tree/JCTree;
         1: .line 701
            aload 3
            invokevirtual com.sun.tools.javac.comp.Enter.getEnvs:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.Env
            getfield com.sun.tools.javac.comp.Env.enclClass:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
         2: .line 700
            invokevirtual com.sun.tools.javac.comp.Attr.attribType:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.code.Symbol$VarSymbol.type:Lcom/sun/tools/javac/code/Type;
         3: .line 702
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TaskFactory.java"
NestHost: jdk.jshell.TaskFactory
InnerClasses:
  public final Kind = com.sun.source.tree.Tree$Kind of com.sun.source.tree.Tree
  public final Kind = com.sun.source.util.TaskEvent$Kind of com.sun.source.util.TaskEvent
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public abstract WriteableScope = com.sun.tools.javac.code.Scope$WriteableScope of com.sun.tools.javac.code.Scope
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public VarSymbol = com.sun.tools.javac.code.Symbol$VarSymbol of com.sun.tools.javac.code.Symbol
  public JCClassDecl = com.sun.tools.javac.tree.JCTree$JCClassDecl of com.sun.tools.javac.tree.JCTree
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
  public JCTypeCast = com.sun.tools.javac.tree.JCTree$JCTypeCast of com.sun.tools.javac.tree.JCTree
  public JCVariableDecl = com.sun.tools.javac.tree.JCTree$JCVariableDecl of com.sun.tools.javac.tree.JCTree
  public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree
  public abstract DiagnosticHandler = com.sun.tools.javac.util.Log$DiagnosticHandler of com.sun.tools.javac.util.Log
  public DiscardDiagnosticHandler = com.sun.tools.javac.util.Log$DiscardDiagnosticHandler of com.sun.tools.javac.util.Log
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Kind = jdk.jshell.Snippet$Kind of jdk.jshell.Snippet
  public final Status = jdk.jshell.Snippet$Status of jdk.jshell.Snippet
  public final SubKind = jdk.jshell.Snippet$SubKind of jdk.jshell.Snippet
  private final DisableAccessibilityResolve = jdk.jshell.TaskFactory$DisableAccessibilityResolve of jdk.jshell.TaskFactory
  private final TaskListenerImpl = jdk.jshell.TaskFactory$TaskListenerImpl of jdk.jshell.TaskFactory