class jdk.jshell.TreeDissector
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.jshell.TreeDissector
  super_class: java.lang.Object
{
  private final jdk.jshell.TaskFactory$BaseTask bt;
    descriptor: Ljdk/jshell/TaskFactory$BaseTask;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.source.tree.ClassTree targetClass;
    descriptor: Lcom/sun/source/tree/ClassTree;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.source.tree.CompilationUnitTree targetCompilationUnit;
    descriptor: Lcom/sun/source/tree/CompilationUnitTree;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.sun.source.util.SourcePositions theSourcePositions;
    descriptor: Lcom/sun/source/util/SourcePositions;
    flags: (0x0002) ACC_PRIVATE

  private static final java.util.function.Predicate<? super com.sun.source.tree.Tree> isClassOrInterface;
    descriptor: Ljava/util/function/Predicate;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Predicate<-Lcom/sun/source/tree/Tree;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 79
            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/TreeDissector.lambda$0(Lcom/sun/source/tree/Tree;)Z (6)
                  (Lcom/sun/source/tree/Tree;)Z
         1: .line 78
            putstatic jdk.jshell.TreeDissector.isClassOrInterface:Ljava/util/function/Predicate;
         2: .line 79
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(jdk.jshell.TaskFactory$BaseTask, com.sun.source.tree.CompilationUnitTree, com.sun.source.tree.ClassTree);
    descriptor: (Ljdk/jshell/TaskFactory$BaseTask;Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // jdk.jshell.TreeDissector this
        start local 1 // jdk.jshell.TaskFactory$BaseTask bt
        start local 2 // com.sun.source.tree.CompilationUnitTree targetCompilationUnit
        start local 3 // com.sun.source.tree.ClassTree targetClass
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            aconst_null
            putfield jdk.jshell.TreeDissector.theSourcePositions:Lcom/sun/source/util/SourcePositions;
         2: .line 66
            aload 0 /* this */
            aload 1 /* bt */
            putfield jdk.jshell.TreeDissector.bt:Ljdk/jshell/TaskFactory$BaseTask;
         3: .line 67
            aload 0 /* this */
            aload 2 /* targetCompilationUnit */
            putfield jdk.jshell.TreeDissector.targetCompilationUnit:Lcom/sun/source/tree/CompilationUnitTree;
         4: .line 68
            aload 0 /* this */
            aload 3 /* targetClass */
            putfield jdk.jshell.TreeDissector.targetClass:Lcom/sun/source/tree/ClassTree;
         5: .line 69
            return
        end local 3 // com.sun.source.tree.ClassTree targetClass
        end local 2 // com.sun.source.tree.CompilationUnitTree targetCompilationUnit
        end local 1 // jdk.jshell.TaskFactory$BaseTask bt
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Ljdk/jshell/TreeDissector;
            0    6     1                     bt  Ljdk/jshell/TaskFactory$BaseTask;
            0    6     2  targetCompilationUnit  Lcom/sun/source/tree/CompilationUnitTree;
            0    6     3            targetClass  Lcom/sun/source/tree/ClassTree;
    MethodParameters:
                       Name  Flags
      bt                     
      targetCompilationUnit  
      targetClass            

  static jdk.jshell.TreeDissector createByFirstClass(jdk.jshell.TaskFactory$BaseTask);
    descriptor: (Ljdk/jshell/TaskFactory$BaseTask;)Ljdk/jshell/TreeDissector;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // jdk.jshell.TaskFactory$BaseTask bt
         0: .line 72
            aload 0 /* bt */
            invokevirtual jdk.jshell.TaskFactory$BaseTask.firstCuTree:()Lcom/sun/source/tree/CompilationUnitTree;
            invokestatic jdk.jshell.TreeDissector.classes:(Lcom/sun/source/tree/CompilationUnitTree;)Ljava/util/stream/Stream;
         1: .line 73
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            aload 0 /* bt */
            invokedynamic get(Ljdk/jshell/TaskFactory$BaseTask;)Ljava/util/function/Supplier;
              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;
                  jdk/jshell/TreeDissector.lambda$1(Ljdk/jshell/TaskFactory$BaseTask;)Ljdk/jshell/Util$Pair; (6)
                  ()Ljdk/jshell/Util$Pair;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast jdk.jshell.Util$Pair
         2: .line 72
            astore 1 /* pair */
        start local 1 // jdk.jshell.Util$Pair pair
         3: .line 75
            new jdk.jshell.TreeDissector
            dup
            aload 0 /* bt */
            aload 1 /* pair */
            getfield jdk.jshell.Util$Pair.first:Ljava/lang/Object;
            checkcast com.sun.source.tree.CompilationUnitTree
            aload 1 /* pair */
            getfield jdk.jshell.Util$Pair.second:Ljava/lang/Object;
            checkcast com.sun.source.tree.ClassTree
            invokespecial jdk.jshell.TreeDissector.<init>:(Ljdk/jshell/TaskFactory$BaseTask;Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;)V
            areturn
        end local 1 // jdk.jshell.Util$Pair pair
        end local 0 // jdk.jshell.TaskFactory$BaseTask bt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    bt  Ljdk/jshell/TaskFactory$BaseTask;
            3    4     1  pair  Ljdk/jshell/Util$Pair<Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;>;
    MethodParameters:
      Name  Flags
      bt    

  private static java.util.stream.Stream<jdk.jshell.Util$Pair<com.sun.source.tree.CompilationUnitTree, com.sun.source.tree.ClassTree>> classes(com.sun.source.tree.CompilationUnitTree);
    descriptor: (Lcom/sun/source/tree/CompilationUnitTree;)Ljava/util/stream/Stream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.source.tree.CompilationUnitTree cut
         0: .line 82
            aload 0 /* cut */
            ifnonnull 2
         1: .line 83
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            goto 5
         2: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* cut */
            invokeinterface com.sun.source.tree.CompilationUnitTree.getTypeDecls:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         3: .line 85
            getstatic jdk.jshell.TreeDissector.isClassOrInterface:Ljava/util/function/Predicate;
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 86
            aload 0 /* cut */
            invokedynamic apply(Lcom/sun/source/tree/CompilationUnitTree;)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/TreeDissector.lambda$2(Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/Tree;)Ljdk/jshell/Util$Pair; (6)
                  (Lcom/sun/source/tree/Tree;)Ljdk/jshell/Util$Pair;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 82
      StackMap locals:
      StackMap stack: java.util.stream.Stream
            areturn
        end local 0 // com.sun.source.tree.CompilationUnitTree cut
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   cut  Lcom/sun/source/tree/CompilationUnitTree;
    Signature: (Lcom/sun/source/tree/CompilationUnitTree;)Ljava/util/stream/Stream<Ljdk/jshell/Util$Pair<Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;>;>;
    MethodParameters:
      Name  Flags
      cut   

  private static java.util.stream.Stream<jdk.jshell.Util$Pair<com.sun.source.tree.CompilationUnitTree, com.sun.source.tree.ClassTree>> classes(java.lang.Iterable<? extends com.sun.source.tree.CompilationUnitTree>);
    descriptor: (Ljava/lang/Iterable;)Ljava/util/stream/Stream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Iterable cuts
         0: .line 90
            aload 0 /* cuts */
            invokestatic jdk.jshell.Util.stream:(Ljava/lang/Iterable;)Ljava/util/stream/Stream;
         1: .line 91
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/jshell/TreeDissector.classes(Lcom/sun/source/tree/CompilationUnitTree;)Ljava/util/stream/Stream; (6)
                  (Lcom/sun/source/tree/CompilationUnitTree;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 90
            areturn
        end local 0 // java.lang.Iterable cuts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  cuts  Ljava/lang/Iterable<+Lcom/sun/source/tree/CompilationUnitTree;>;
    Signature: (Ljava/lang/Iterable<+Lcom/sun/source/tree/CompilationUnitTree;>;)Ljava/util/stream/Stream<Ljdk/jshell/Util$Pair<Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;>;>;
    MethodParameters:
      Name  Flags
      cuts  

  static jdk.jshell.TreeDissector createBySnippet(jdk.jshell.TaskFactory$BaseTask, jdk.jshell.Snippet);
    descriptor: (Ljdk/jshell/TaskFactory$BaseTask;Ljdk/jshell/Snippet;)Ljdk/jshell/TreeDissector;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.jshell.TaskFactory$BaseTask bt
        start local 1 // jdk.jshell.Snippet si
         0: .line 95
            aload 1 /* si */
            invokevirtual jdk.jshell.Snippet.className:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 97
            aload 0 /* bt */
            invokevirtual jdk.jshell.TaskFactory$BaseTask.cuTrees:()Ljava/lang/Iterable;
            invokestatic jdk.jshell.TreeDissector.classes:(Ljava/lang/Iterable;)Ljava/util/stream/Stream;
         2: .line 98
            aload 2 /* name */
            invokedynamic test(Ljava/lang/String;)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/TreeDissector.lambda$4(Ljava/lang/String;Ljdk/jshell/Util$Pair;)Z (6)
                  (Ljdk/jshell/Util$Pair;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 99
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            aload 2 /* name */
            invokedynamic get(Ljava/lang/String;)Ljava/util/function/Supplier;
              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;
                  jdk/jshell/TreeDissector.lambda$5(Ljava/lang/String;)Ljava/lang/IllegalArgumentException; (6)
                  ()Ljava/lang/IllegalArgumentException;
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast jdk.jshell.Util$Pair
         4: .line 97
            astore 3 /* pair */
        start local 3 // jdk.jshell.Util$Pair pair
         5: .line 102
            new jdk.jshell.TreeDissector
            dup
            aload 0 /* bt */
            aload 3 /* pair */
            getfield jdk.jshell.Util$Pair.first:Ljava/lang/Object;
            checkcast com.sun.source.tree.CompilationUnitTree
            aload 3 /* pair */
            getfield jdk.jshell.Util$Pair.second:Ljava/lang/Object;
            checkcast com.sun.source.tree.ClassTree
            invokespecial jdk.jshell.TreeDissector.<init>:(Ljdk/jshell/TaskFactory$BaseTask;Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;)V
            areturn
        end local 3 // jdk.jshell.Util$Pair pair
        end local 2 // java.lang.String name
        end local 1 // jdk.jshell.Snippet si
        end local 0 // jdk.jshell.TaskFactory$BaseTask bt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0    bt  Ljdk/jshell/TaskFactory$BaseTask;
            0    6     1    si  Ljdk/jshell/Snippet;
            1    6     2  name  Ljava/lang/String;
            5    6     3  pair  Ljdk/jshell/Util$Pair<Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;>;
    MethodParameters:
      Name  Flags
      bt    
      si    

  com.sun.tools.javac.code.Types types();
    descriptor: ()Lcom/sun/tools/javac/code/Types;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.TreeDissector this
         0: .line 106
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.bt:Ljdk/jshell/TaskFactory$BaseTask;
            invokevirtual jdk.jshell.TaskFactory$BaseTask.types:()Lcom/sun/tools/javac/code/Types;
            areturn
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TreeDissector;

  com.sun.source.util.Trees trees();
    descriptor: ()Lcom/sun/source/util/Trees;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.TreeDissector this
         0: .line 110
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.bt:Ljdk/jshell/TaskFactory$BaseTask;
            invokevirtual jdk.jshell.TaskFactory$BaseTask.trees:()Lcom/sun/source/util/Trees;
            areturn
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TreeDissector;

  com.sun.source.util.SourcePositions getSourcePositions();
    descriptor: ()Lcom/sun/source/util/SourcePositions;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jshell.TreeDissector this
         0: .line 114
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.theSourcePositions:Lcom/sun/source/util/SourcePositions;
            ifnonnull 2
         1: .line 115
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual jdk.jshell.TreeDissector.trees:()Lcom/sun/source/util/Trees;
            invokevirtual com.sun.source.util.Trees.getSourcePositions:()Lcom/sun/source/util/SourcePositions;
            putfield jdk.jshell.TreeDissector.theSourcePositions:Lcom/sun/source/util/SourcePositions;
         2: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.theSourcePositions:Lcom/sun/source/util/SourcePositions;
            areturn
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/jshell/TreeDissector;

  int getStartPosition(com.sun.source.tree.Tree);
    descriptor: (Lcom/sun/source/tree/Tree;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.jshell.TreeDissector this
        start local 1 // com.sun.source.tree.Tree tree
         0: .line 121
            aload 0 /* this */
            invokevirtual jdk.jshell.TreeDissector.getSourcePositions:()Lcom/sun/source/util/SourcePositions;
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetCompilationUnit:Lcom/sun/source/tree/CompilationUnitTree;
            aload 1 /* tree */
            invokeinterface com.sun.source.util.SourcePositions.getStartPosition:(Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/Tree;)J
            l2i
            ireturn
        end local 1 // com.sun.source.tree.Tree tree
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TreeDissector;
            0    1     1  tree  Lcom/sun/source/tree/Tree;
    MethodParameters:
      Name  Flags
      tree  

  int getEndPosition(com.sun.source.tree.Tree);
    descriptor: (Lcom/sun/source/tree/Tree;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.jshell.TreeDissector this
        start local 1 // com.sun.source.tree.Tree tree
         0: .line 125
            aload 0 /* this */
            invokevirtual jdk.jshell.TreeDissector.getSourcePositions:()Lcom/sun/source/util/SourcePositions;
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetCompilationUnit:Lcom/sun/source/tree/CompilationUnitTree;
            aload 1 /* tree */
            invokeinterface com.sun.source.util.SourcePositions.getEndPosition:(Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/Tree;)J
            l2i
            ireturn
        end local 1 // com.sun.source.tree.Tree tree
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TreeDissector;
            0    1     1  tree  Lcom/sun/source/tree/Tree;
    MethodParameters:
      Name  Flags
      tree  

  jdk.jshell.Wrap$Range treeToRange(com.sun.source.tree.Tree);
    descriptor: (Lcom/sun/source/tree/Tree;)Ljdk/jshell/Wrap$Range;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.jshell.TreeDissector this
        start local 1 // com.sun.source.tree.Tree tree
         0: .line 129
            new jdk.jshell.Wrap$Range
            dup
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual jdk.jshell.TreeDissector.getStartPosition:(Lcom/sun/source/tree/Tree;)I
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual jdk.jshell.TreeDissector.getEndPosition:(Lcom/sun/source/tree/Tree;)I
            invokespecial jdk.jshell.Wrap$Range.<init>:(II)V
            areturn
        end local 1 // com.sun.source.tree.Tree tree
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/TreeDissector;
            0    1     1  tree  Lcom/sun/source/tree/Tree;
    MethodParameters:
      Name  Flags
      tree  

  jdk.jshell.Wrap$Range treeListToRange(java.util.List<? extends com.sun.source.tree.Tree>);
    descriptor: (Ljava/util/List;)Ljdk/jshell/Wrap$Range;
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // jdk.jshell.TreeDissector this
        start local 1 // java.util.List treeList
         0: .line 133
            ldc 2147483647
            istore 2 /* start */
        start local 2 // int start
         1: .line 134
            iconst_m1
            istore 3 /* end */
        start local 3 // int end
         2: .line 135
            aload 1 /* treeList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: jdk.jshell.TreeDissector java.util.List int int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.source.tree.Tree
            astore 4 /* t */
        start local 4 // com.sun.source.tree.Tree t
         4: .line 136
            aload 0 /* this */
            aload 4 /* t */
            invokevirtual jdk.jshell.TreeDissector.getStartPosition:(Lcom/sun/source/tree/Tree;)I
            istore 6 /* tstart */
        start local 6 // int tstart
         5: .line 137
            aload 0 /* this */
            aload 4 /* t */
            invokevirtual jdk.jshell.TreeDissector.getEndPosition:(Lcom/sun/source/tree/Tree;)I
            istore 7 /* tend */
        start local 7 // int tend
         6: .line 138
            iload 6 /* tstart */
            iload 2 /* start */
            if_icmpge 8
         7: .line 139
            iload 6 /* tstart */
            istore 2 /* start */
         8: .line 141
      StackMap locals: jdk.jshell.TreeDissector java.util.List int int com.sun.source.tree.Tree java.util.Iterator int int
      StackMap stack:
            iload 7 /* tend */
            iload 3 /* end */
            if_icmple 10
         9: .line 142
            iload 7 /* tend */
            istore 3 /* end */
        end local 7 // int tend
        end local 6 // int tstart
        end local 4 // com.sun.source.tree.Tree t
        10: .line 135
      StackMap locals: jdk.jshell.TreeDissector java.util.List int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        11: .line 145
            iload 2 /* start */
            ldc 2147483647
            if_icmpne 13
        12: .line 146
            aconst_null
            areturn
        13: .line 148
      StackMap locals: jdk.jshell.TreeDissector java.util.List int int
      StackMap stack:
            new jdk.jshell.Wrap$Range
            dup
            iload 2 /* start */
            iload 3 /* end */
            invokespecial jdk.jshell.Wrap$Range.<init>:(II)V
            areturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.util.List treeList
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Ljdk/jshell/TreeDissector;
            0   14     1  treeList  Ljava/util/List<+Lcom/sun/source/tree/Tree;>;
            1   14     2     start  I
            2   14     3       end  I
            4   10     4         t  Lcom/sun/source/tree/Tree;
            5   10     6    tstart  I
            6   10     7      tend  I
    Signature: (Ljava/util/List<+Lcom/sun/source/tree/Tree;>;)Ljdk/jshell/Wrap$Range;
    MethodParameters:
          Name  Flags
      treeList  

  com.sun.source.tree.MethodTree method(jdk.jshell.MethodSnippet);
    descriptor: (Ljdk/jshell/MethodSnippet;)Lcom/sun/source/tree/MethodTree;
    flags: (0x0000) 
    Code:
      stack=2, locals=9, args_size=2
        start local 0 // jdk.jshell.TreeDissector this
        start local 1 // jdk.jshell.MethodSnippet msn
         0: .line 152
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetClass:Lcom/sun/source/tree/ClassTree;
            ifnonnull 2
         1: .line 153
            aconst_null
            areturn
         2: .line 155
      StackMap locals:
      StackMap stack:
            aload 1 /* msn */
            invokevirtual jdk.jshell.MethodSnippet.outerWrap:()Ljdk/jshell/OuterWrap;
            astore 2 /* ow */
        start local 2 // jdk.jshell.OuterWrap ow
         3: .line 156
            aload 2 /* ow */
            instanceof jdk.jshell.OuterSnippetsClassWrap
            ifne 5
         4: .line 157
            aconst_null
            areturn
         5: .line 159
      StackMap locals: jdk.jshell.OuterWrap
      StackMap stack:
            aload 2 /* ow */
            checkcast jdk.jshell.OuterSnippetsClassWrap
            aload 1 /* msn */
            invokevirtual jdk.jshell.OuterSnippetsClassWrap.ordinal:(Ljdk/jshell/Snippet;)I
            istore 3 /* ordinal */
        start local 3 // int ordinal
         6: .line 160
            iload 3 /* ordinal */
            ifge 8
         7: .line 161
            aconst_null
            areturn
         8: .line 163
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         9: .line 164
            aload 1 /* msn */
            invokevirtual jdk.jshell.MethodSnippet.name:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
        10: .line 165
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetClass:Lcom/sun/source/tree/ClassTree;
            invokeinterface com.sun.source.tree.ClassTree.getMembers:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 18
      StackMap locals: jdk.jshell.TreeDissector jdk.jshell.MethodSnippet jdk.jshell.OuterWrap int int java.lang.String top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.source.tree.Tree
            astore 6 /* mem */
        start local 6 // com.sun.source.tree.Tree mem
        12: .line 166
            aload 6 /* mem */
            invokeinterface com.sun.source.tree.Tree.getKind:()Lcom/sun/source/tree/Tree$Kind;
            getstatic com.sun.source.tree.Tree$Kind.METHOD:Lcom/sun/source/tree/Tree$Kind;
            if_acmpne 18
        13: .line 167
            aload 6 /* mem */
            checkcast com.sun.source.tree.MethodTree
            astore 8 /* mt */
        start local 8 // com.sun.source.tree.MethodTree mt
        14: .line 168
            aload 8 /* mt */
            invokeinterface com.sun.source.tree.MethodTree.getName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 5 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        15: .line 169
            iload 4 /* count */
            iload 3 /* ordinal */
            if_icmpne 17
        16: .line 170
            aload 8 /* mt */
            areturn
        17: .line 172
      StackMap locals: jdk.jshell.TreeDissector jdk.jshell.MethodSnippet jdk.jshell.OuterWrap int int java.lang.String com.sun.source.tree.Tree java.util.Iterator com.sun.source.tree.MethodTree
      StackMap stack:
            iinc 4 /* count */ 1
        end local 8 // com.sun.source.tree.MethodTree mt
        end local 6 // com.sun.source.tree.Tree mem
        18: .line 165
      StackMap locals: jdk.jshell.TreeDissector jdk.jshell.MethodSnippet jdk.jshell.OuterWrap int int java.lang.String top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        19: .line 176
            aconst_null
            areturn
        end local 5 // java.lang.String name
        end local 4 // int count
        end local 3 // int ordinal
        end local 2 // jdk.jshell.OuterWrap ow
        end local 1 // jdk.jshell.MethodSnippet msn
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Ljdk/jshell/TreeDissector;
            0   20     1      msn  Ljdk/jshell/MethodSnippet;
            3   20     2       ow  Ljdk/jshell/OuterWrap;
            6   20     3  ordinal  I
            9   20     4    count  I
           10   20     5     name  Ljava/lang/String;
           12   18     6      mem  Lcom/sun/source/tree/Tree;
           14   18     8       mt  Lcom/sun/source/tree/MethodTree;
    MethodParameters:
      Name  Flags
      msn   

  com.sun.source.tree.StatementTree firstStatement();
    descriptor: ()Lcom/sun/source/tree/StatementTree;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // jdk.jshell.TreeDissector this
         0: .line 180
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetClass:Lcom/sun/source/tree/ClassTree;
            ifnull 10
         1: .line 181
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetClass:Lcom/sun/source/tree/ClassTree;
            invokeinterface com.sun.source.tree.ClassTree.getMembers:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: jdk.jshell.TreeDissector top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.source.tree.Tree
            astore 1 /* mem */
        start local 1 // com.sun.source.tree.Tree mem
         3: .line 182
            aload 1 /* mem */
            invokeinterface com.sun.source.tree.Tree.getKind:()Lcom/sun/source/tree/Tree$Kind;
            getstatic com.sun.source.tree.Tree$Kind.METHOD:Lcom/sun/source/tree/Tree$Kind;
            if_acmpne 9
         4: .line 183
            aload 1 /* mem */
            checkcast com.sun.source.tree.MethodTree
            astore 3 /* mt */
        start local 3 // com.sun.source.tree.MethodTree mt
         5: .line 184
            aload 3 /* mt */
            invokeinterface com.sun.source.tree.MethodTree.getName:()Ljavax/lang/model/element/Name;
            invokestatic jdk.jshell.Util.isDoIt:(Ljavax/lang/model/element/Name;)Z
            ifeq 9
         6: .line 185
            aload 3 /* mt */
            invokeinterface com.sun.source.tree.MethodTree.getBody:()Lcom/sun/source/tree/BlockTree;
            invokeinterface com.sun.source.tree.BlockTree.getStatements:()Ljava/util/List;
            astore 4 /* stmts */
        start local 4 // java.util.List stmts
         7: .line 186
            aload 4 /* stmts */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 9
         8: .line 187
            aload 4 /* stmts */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.source.tree.StatementTree
            areturn
        end local 4 // java.util.List stmts
        end local 3 // com.sun.source.tree.MethodTree mt
        end local 1 // com.sun.source.tree.Tree mem
         9: .line 181
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 193
      StackMap locals: jdk.jshell.TreeDissector
      StackMap stack:
            aconst_null
            areturn
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Ljdk/jshell/TreeDissector;
            3    9     1    mem  Lcom/sun/source/tree/Tree;
            5    9     3     mt  Lcom/sun/source/tree/MethodTree;
            7    9     4  stmts  Ljava/util/List<+Lcom/sun/source/tree/StatementTree;>;

  com.sun.source.tree.VariableTree firstVariable();
    descriptor: ()Lcom/sun/source/tree/VariableTree;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // jdk.jshell.TreeDissector this
         0: .line 197
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetClass:Lcom/sun/source/tree/ClassTree;
            ifnull 7
         1: .line 198
            aload 0 /* this */
            getfield jdk.jshell.TreeDissector.targetClass:Lcom/sun/source/tree/ClassTree;
            invokeinterface com.sun.source.tree.ClassTree.getMembers:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: jdk.jshell.TreeDissector top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.source.tree.Tree
            astore 1 /* mem */
        start local 1 // com.sun.source.tree.Tree mem
         3: .line 199
            aload 1 /* mem */
            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_acmpne 6
         4: .line 200
            aload 1 /* mem */
            checkcast com.sun.source.tree.VariableTree
            astore 3 /* vt */
        start local 3 // com.sun.source.tree.VariableTree vt
         5: .line 201
            aload 3 /* vt */
            areturn
        end local 3 // com.sun.source.tree.VariableTree vt
        end local 1 // com.sun.source.tree.Tree mem
         6: .line 198
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 205
      StackMap locals: jdk.jshell.TreeDissector
      StackMap stack:
            aconst_null
            areturn
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/jshell/TreeDissector;
            3    6     1   mem  Lcom/sun/source/tree/Tree;
            5    6     3    vt  Lcom/sun/source/tree/VariableTree;

  java.lang.String typeOfMethod(jdk.jshell.MethodSnippet);
    descriptor: (Ljdk/jshell/MethodSnippet;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // jdk.jshell.TreeDissector this
        start local 1 // jdk.jshell.MethodSnippet msn
         0: .line 209
            aload 0 /* this */
            aload 1 /* msn */
            invokevirtual jdk.jshell.TreeDissector.method:(Ljdk/jshell/MethodSnippet;)Lcom/sun/source/tree/MethodTree;
            astore 2 /* unitTree */
        start local 2 // com.sun.source.tree.Tree unitTree
         1: .line 210
            aload 2 /* unitTree */
            instanceof com.sun.tools.javac.tree.JCTree$JCMethodDecl
            ifeq 6
         2: .line 211
            aload 2 /* unitTree */
            checkcast com.sun.tools.javac.tree.JCTree$JCMethodDecl
            astore 3 /* mtree */
        start local 3 // com.sun.tools.javac.tree.JCTree$JCMethodDecl mtree
         3: .line 212
            aload 0 /* this */
            invokevirtual jdk.jshell.TreeDissector.types:()Lcom/sun/tools/javac/code/Types;
            aload 3 /* mtree */
            getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 4 /* mt */
        start local 4 // com.sun.tools.javac.code.Type mt
         4: .line 213
            aload 4 /* mt */
            instanceof com.sun.tools.javac.code.Type$MethodType
            ifeq 6
         5: .line 214
            aload 0 /* this */
            invokevirtual jdk.jshell.TreeDissector.types:()Lcom/sun/tools/javac/code/Types;
            aload 4 /* mt */
            checkcast com.sun.tools.javac.code.Type$MethodType
            invokestatic jdk.jshell.TreeDissector.signature:(Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/code/Type$MethodType;)Ljava/lang/String;
            areturn
        end local 4 // com.sun.tools.javac.code.Type mt
        end local 3 // com.sun.tools.javac.tree.JCTree$JCMethodDecl mtree
         6: .line 217
      StackMap locals: com.sun.source.tree.Tree
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.sun.source.tree.Tree unitTree
        end local 1 // jdk.jshell.MethodSnippet msn
        end local 0 // jdk.jshell.TreeDissector this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljdk/jshell/TreeDissector;
            0    7     1       msn  Ljdk/jshell/MethodSnippet;
            1    7     2  unitTree  Lcom/sun/source/tree/Tree;
            3    6     3     mtree  Lcom/sun/tools/javac/tree/JCTree$JCMethodDecl;
            4    6     4        mt  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      msn   

  static java.lang.String signature(com.sun.tools.javac.code.Types, com.sun.tools.javac.code.Type$MethodType);
    descriptor: (Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/code/Type$MethodType;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types types
        start local 1 // com.sun.tools.javac.code.Type$MethodType mt
         0: .line 221
            new jdk.jshell.TreeDissector$TDSignatureGenerator
            dup
            aload 0 /* types */
            invokespecial jdk.jshell.TreeDissector$TDSignatureGenerator.<init>:(Lcom/sun/tools/javac/code/Types;)V
            astore 2 /* sg */
        start local 2 // jdk.jshell.TreeDissector$TDSignatureGenerator sg
         1: .line 222
            aload 2 /* sg */
            aload 1 /* mt */
            invokevirtual jdk.jshell.TreeDissector$TDSignatureGenerator.assembleSig:(Lcom/sun/tools/javac/code/Type;)V
         2: .line 223
            aload 2 /* sg */
            invokevirtual jdk.jshell.TreeDissector$TDSignatureGenerator.toString:()Ljava/lang/String;
            areturn
        end local 2 // jdk.jshell.TreeDissector$TDSignatureGenerator sg
        end local 1 // com.sun.tools.javac.code.Type$MethodType mt
        end local 0 // com.sun.tools.javac.code.Types types
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  types  Lcom/sun/tools/javac/code/Types;
            0    3     1     mt  Lcom/sun/tools/javac/code/Type$MethodType;
            1    3     2     sg  Ljdk/jshell/TreeDissector$TDSignatureGenerator;
    MethodParameters:
       Name  Flags
      types  
      mt     

  public static java.lang.String printType(jdk.jshell.TaskFactory$AnalyzeTask, jdk.jshell.JShell, javax.lang.model.type.TypeMirror);
    descriptor: (Ljdk/jshell/TaskFactory$AnalyzeTask;Ljdk/jshell/JShell;Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // jdk.jshell.TaskFactory$AnalyzeTask at
        start local 1 // jdk.jshell.JShell state
        start local 2 // javax.lang.model.type.TypeMirror type
         0: .line 227
            aload 2 /* type */
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* typeImpl */
        start local 3 // com.sun.tools.javac.code.Type typeImpl
         1: .line 229
            new jdk.jshell.TypePrinter
            dup
            aload 0 /* at */
            invokevirtual jdk.jshell.TaskFactory$AnalyzeTask.messages:()Lcom/sun/tools/javac/util/JavacMessages;
         2: .line 230
            aload 1 /* state */
            getfield jdk.jshell.JShell.maps:Ljdk/jshell/SnippetMaps;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljdk/jshell/SnippetMaps;)Ljava/util/function/BinaryOperator;
              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/SnippetMaps.fullClassNameAndPackageToClass(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; (5)
                  (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            iconst_1
         3: .line 229
            invokespecial jdk.jshell.TypePrinter.<init>:(Lcom/sun/tools/javac/util/JavacMessages;Ljava/util/function/BinaryOperator;Z)V
            astore 4 /* tp */
        start local 4 // jdk.jshell.TypePrinter tp
         4: .line 231
            aload 4 /* tp */
            aload 3 /* typeImpl */
            invokevirtual jdk.jshell.TypePrinter.toString:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/String;
         5: areturn
        end local 4 // jdk.jshell.TypePrinter tp
         6: .line 232
      StackMap locals: jdk.jshell.TaskFactory$AnalyzeTask jdk.jshell.JShell javax.lang.model.type.TypeMirror com.sun.tools.javac.code.Type
      StackMap stack: java.lang.Exception
            pop
         7: .line 233
            aconst_null
            areturn
        end local 3 // com.sun.tools.javac.code.Type typeImpl
        end local 2 // javax.lang.model.type.TypeMirror type
        end local 1 // jdk.jshell.JShell state
        end local 0 // jdk.jshell.TaskFactory$AnalyzeTask at
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0        at  Ljdk/jshell/TaskFactory$AnalyzeTask;
            0    8     1     state  Ljdk/jshell/JShell;
            0    8     2      type  Ljavax/lang/model/type/TypeMirror;
            1    8     3  typeImpl  Lcom/sun/tools/javac/code/Type;
            4    6     4        tp  Ljdk/jshell/TypePrinter;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      at     
      state  
      type   

  private static boolean lambda$0(com.sun.source.tree.Tree);
    descriptor: (Lcom/sun/source/tree/Tree;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.source.tree.Tree t
         0: .line 79
            aload 0 /* t */
            invokeinterface com.sun.source.tree.Tree.getKind:()Lcom/sun/source/tree/Tree$Kind;
            getstatic com.sun.source.tree.Tree$Kind.CLASS:Lcom/sun/source/tree/Tree$Kind;
            if_acmpeq 1
            aload 0 /* t */
            invokeinterface com.sun.source.tree.Tree.getKind:()Lcom/sun/source/tree/Tree$Kind;
            getstatic com.sun.source.tree.Tree$Kind.INTERFACE:Lcom/sun/source/tree/Tree$Kind;
            if_acmpeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.sun.source.tree.Tree t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Lcom/sun/source/tree/Tree;

  private static jdk.jshell.Util$Pair lambda$1(jdk.jshell.TaskFactory$BaseTask);
    descriptor: (Ljdk/jshell/TaskFactory$BaseTask;)Ljdk/jshell/Util$Pair;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
         0: .line 73
            new jdk.jshell.Util$Pair
            dup
            aload 0
            invokevirtual jdk.jshell.TaskFactory$BaseTask.firstCuTree:()Lcom/sun/source/tree/CompilationUnitTree;
            aconst_null
            invokespecial jdk.jshell.Util$Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static jdk.jshell.Util$Pair lambda$2(com.sun.source.tree.CompilationUnitTree, com.sun.source.tree.Tree);
    descriptor: (Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/Tree;)Ljdk/jshell/Util$Pair;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // com.sun.source.tree.Tree decl
         0: .line 86
            new jdk.jshell.Util$Pair
            dup
            aload 0
            aload 1 /* decl */
            checkcast com.sun.source.tree.ClassTree
            invokespecial jdk.jshell.Util$Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            areturn
        end local 1 // com.sun.source.tree.Tree decl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  decl  Lcom/sun/source/tree/Tree;

  private static boolean lambda$4(java.lang.String, jdk.jshell.Util$Pair);
    descriptor: (Ljava/lang/String;Ljdk/jshell/Util$Pair;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.jshell.Util$Pair p
         0: .line 98
            aload 1 /* p */
            getfield jdk.jshell.Util$Pair.second:Ljava/lang/Object;
            checkcast com.sun.source.tree.ClassTree
            invokeinterface com.sun.source.tree.ClassTree.getSimpleName:()Ljavax/lang/model/element/Name;
            aload 0
            invokeinterface javax.lang.model.element.Name.contentEquals:(Ljava/lang/CharSequence;)Z
            ireturn
        end local 1 // jdk.jshell.Util$Pair p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljdk/jshell/Util$Pair<Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/ClassTree;>;

  private static java.lang.IllegalArgumentException lambda$5(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
         0: .line 100
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is not found."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TreeDissector.java"
NestMembers:
  jdk.jshell.TreeDissector$TDSignatureGenerator
InnerClasses:
  public final Kind = com.sun.source.tree.Tree$Kind of com.sun.source.tree.Tree
  public MethodType = com.sun.tools.javac.code.Type$MethodType of com.sun.tools.javac.code.Type
  public JCMethodDecl = com.sun.tools.javac.tree.JCTree$JCMethodDecl of com.sun.tools.javac.tree.JCTree
  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
  private TDSignatureGenerator = jdk.jshell.TreeDissector$TDSignatureGenerator of jdk.jshell.TreeDissector
  Pair = jdk.jshell.Util$Pair of jdk.jshell.Util
  public final Range = jdk.jshell.Wrap$Range of jdk.jshell.Wrap