public class com.sun.tools.javac.comp.DeferredAttr extends com.sun.tools.javac.tree.JCTree$Visitor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.comp.DeferredAttr
  super_class: com.sun.tools.javac.tree.JCTree$Visitor
{
  protected static final com.sun.tools.javac.util.Context$Key<com.sun.tools.javac.comp.DeferredAttr> deferredAttrKey;
    descriptor: Lcom/sun/tools/javac/util/Context$Key;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lcom/sun/tools/javac/util/Context$Key<Lcom/sun/tools/javac/comp/DeferredAttr;>;

  final com.sun.tools.javac.comp.Attr attr;
    descriptor: Lcom/sun/tools/javac/comp/Attr;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.ArgumentAttr argumentAttr;
    descriptor: Lcom/sun/tools/javac/comp/ArgumentAttr;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.Check chk;
    descriptor: Lcom/sun/tools/javac/comp/Check;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.util.JCDiagnostic$Factory diags;
    descriptor: Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.Enter enter;
    descriptor: Lcom/sun/tools/javac/comp/Enter;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.Infer infer;
    descriptor: Lcom/sun/tools/javac/comp/Infer;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.Resolve rs;
    descriptor: Lcom/sun/tools/javac/comp/Resolve;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.util.Log log;
    descriptor: Lcom/sun/tools/javac/util/Log;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.code.Symtab syms;
    descriptor: Lcom/sun/tools/javac/code/Symtab;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.tree.TreeMaker make;
    descriptor: Lcom/sun/tools/javac/tree/TreeMaker;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.tree.TreeCopier<java.lang.Void> treeCopier;
    descriptor: Lcom/sun/tools/javac/tree/TreeCopier;
    flags: (0x0010) ACC_FINAL
    Signature: Lcom/sun/tools/javac/tree/TreeCopier<Ljava/lang/Void;>;

  final com.sun.tools.javac.code.Types$TypeMapping<java.lang.Void> deferredCopier;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeMapping;
    flags: (0x0010) ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$TypeMapping<Ljava/lang/Void;>;

  final com.sun.tools.javac.code.Types types;
    descriptor: Lcom/sun/tools/javac/code/Types;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.Flow flow;
    descriptor: Lcom/sun/tools/javac/comp/Flow;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.util.Names names;
    descriptor: Lcom/sun/tools/javac/util/Names;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.TypeEnvs typeEnvs;
    descriptor: Lcom/sun/tools/javac/comp/TypeEnvs;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.tree.JCTree stuckTree;
    descriptor: Lcom/sun/tools/javac/tree/JCTree;
    flags: (0x0010) ACC_FINAL

  com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter basicCompleter;
    descriptor: Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;
    flags: (0x0000) 

  com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy dummyStuckPolicy;
    descriptor: Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;
    flags: (0x0000) 

  final com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext emptyDeferredAttrContext;
    descriptor: Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
    flags: (0x0010) ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 79
            new com.sun.tools.javac.util.Context$Key
            dup
            invokespecial com.sun.tools.javac.util.Context$Key.<init>:()V
            putstatic com.sun.tools.javac.comp.DeferredAttr.deferredAttrKey:Lcom/sun/tools/javac/util/Context$Key;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.sun.tools.javac.comp.DeferredAttr instance(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/DeferredAttr;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.util.Context context
         0: .line 99
            aload 0 /* context */
            getstatic com.sun.tools.javac.comp.DeferredAttr.deferredAttrKey:Lcom/sun/tools/javac/util/Context$Key;
            invokevirtual com.sun.tools.javac.util.Context.get:(Lcom/sun/tools/javac/util/Context$Key;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.DeferredAttr
            astore 1 /* instance */
        start local 1 // com.sun.tools.javac.comp.DeferredAttr instance
         1: .line 100
            aload 1 /* instance */
            ifnonnull 3
         2: .line 101
            new com.sun.tools.javac.comp.DeferredAttr
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javac.comp.DeferredAttr.<init>:(Lcom/sun/tools/javac/util/Context;)V
            astore 1 /* instance */
         3: .line 102
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr
      StackMap stack:
            aload 1 /* instance */
            areturn
        end local 1 // com.sun.tools.javac.comp.DeferredAttr instance
        end local 0 // com.sun.tools.javac.util.Context context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lcom/sun/tools/javac/util/Context;
            1    4     1  instance  Lcom/sun/tools/javac/comp/DeferredAttr;
    MethodParameters:
         Name  Flags
      context  

  protected void <init>(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.DeferredAttr this
        start local 1 // com.sun.tools.javac.util.Context context
         0: .line 105
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$Visitor.<init>:()V
         1: .line 362
            aload 0 /* this */
            new com.sun.tools.javac.comp.DeferredAttr$1
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$1.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;)V
            putfield com.sun.tools.javac.comp.DeferredAttr.basicCompleter:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;
         2: .line 405
            aload 0 /* this */
            new com.sun.tools.javac.comp.DeferredAttr$2
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$2.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;)V
            putfield com.sun.tools.javac.comp.DeferredAttr.dummyStuckPolicy:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;
         3: .line 106
            aload 1 /* context */
            getstatic com.sun.tools.javac.comp.DeferredAttr.deferredAttrKey:Lcom/sun/tools/javac/util/Context$Key;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.util.Context.put:(Lcom/sun/tools/javac/util/Context$Key;Ljava/lang/Object;)V
         4: .line 107
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Attr.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Attr;
            putfield com.sun.tools.javac.comp.DeferredAttr.attr:Lcom/sun/tools/javac/comp/Attr;
         5: .line 108
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.ArgumentAttr.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/ArgumentAttr;
            putfield com.sun.tools.javac.comp.DeferredAttr.argumentAttr:Lcom/sun/tools/javac/comp/ArgumentAttr;
         6: .line 109
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Check.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Check;
            putfield com.sun.tools.javac.comp.DeferredAttr.chk:Lcom/sun/tools/javac/comp/Check;
         7: .line 110
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.JCDiagnostic$Factory.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
            putfield com.sun.tools.javac.comp.DeferredAttr.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
         8: .line 111
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Enter.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Enter;
            putfield com.sun.tools.javac.comp.DeferredAttr.enter:Lcom/sun/tools/javac/comp/Enter;
         9: .line 112
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Infer.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Infer;
            putfield com.sun.tools.javac.comp.DeferredAttr.infer:Lcom/sun/tools/javac/comp/Infer;
        10: .line 113
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Resolve.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Resolve;
            putfield com.sun.tools.javac.comp.DeferredAttr.rs:Lcom/sun/tools/javac/comp/Resolve;
        11: .line 114
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.Log.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Log;
            putfield com.sun.tools.javac.comp.DeferredAttr.log:Lcom/sun/tools/javac/util/Log;
        12: .line 115
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            putfield com.sun.tools.javac.comp.DeferredAttr.syms:Lcom/sun/tools/javac/code/Symtab;
        13: .line 116
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.tree.TreeMaker.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/tree/TreeMaker;
            putfield com.sun.tools.javac.comp.DeferredAttr.make:Lcom/sun/tools/javac/tree/TreeMaker;
        14: .line 117
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Types.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Types;
            putfield com.sun.tools.javac.comp.DeferredAttr.types:Lcom/sun/tools/javac/code/Types;
        15: .line 118
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Flow.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Flow;
            putfield com.sun.tools.javac.comp.DeferredAttr.flow:Lcom/sun/tools/javac/comp/Flow;
        16: .line 119
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.Names.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Names;
            putfield com.sun.tools.javac.comp.DeferredAttr.names:Lcom/sun/tools/javac/util/Names;
        17: .line 120
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.make:Lcom/sun/tools/javac/tree/TreeMaker;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.empty:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.tree.TreeMaker.Ident:(Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/tree/JCTree$JCIdent;
            getstatic com.sun.tools.javac.code.Type.stuckType:Lcom/sun/tools/javac/code/Type$JCNoType;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCIdent.setType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            putfield com.sun.tools.javac.comp.DeferredAttr.stuckTree:Lcom/sun/tools/javac/tree/JCTree;
        18: .line 121
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.TypeEnvs.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/TypeEnvs;
            putfield com.sun.tools.javac.comp.DeferredAttr.typeEnvs:Lcom/sun/tools/javac/comp/TypeEnvs;
        19: .line 122
            aload 0 /* this */
        20: .line 123
            new com.sun.tools.javac.comp.DeferredAttr$3
            dup
            aload 0 /* this */
            aload 0 /* this */
            getstatic com.sun.tools.javac.comp.DeferredAttr$AttrMode.CHECK:Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
            aconst_null
            getstatic com.sun.tools.javac.comp.Resolve$MethodResolutionPhase.BOX:Lcom/sun/tools/javac/comp/Resolve$MethodResolutionPhase;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.infer:Lcom/sun/tools/javac/comp/Infer;
            getfield com.sun.tools.javac.comp.Infer.emptyContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aconst_null
            aconst_null
            invokespecial com.sun.tools.javac.comp.DeferredAttr$3.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/comp/Resolve$MethodResolutionPhase;Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;Lcom/sun/tools/javac/util/Warner;)V
        21: .line 122
            putfield com.sun.tools.javac.comp.DeferredAttr.emptyDeferredAttrContext:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
        22: .line 140
            aload 0 /* this */
        23: .line 141
            new com.sun.tools.javac.comp.DeferredAttr$4
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.make:Lcom/sun/tools/javac/tree/TreeMaker;
            invokespecial com.sun.tools.javac.comp.DeferredAttr$4.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/tree/TreeMaker;)V
        24: .line 140
            putfield com.sun.tools.javac.comp.DeferredAttr.treeCopier:Lcom/sun/tools/javac/tree/TreeCopier;
        25: .line 185
            aload 0 /* this */
            new com.sun.tools.javac.comp.DeferredAttr$5
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$5.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;)V
            putfield com.sun.tools.javac.comp.DeferredAttr.deferredCopier:Lcom/sun/tools/javac/code/Types$TypeMapping;
        26: .line 195
            return
        end local 1 // com.sun.tools.javac.util.Context context
        end local 0 // com.sun.tools.javac.comp.DeferredAttr this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0     this  Lcom/sun/tools/javac/comp/DeferredAttr;
            0   27     1  context  Lcom/sun/tools/javac/util/Context;
    MethodParameters:
         Name  Flags
      context  

  com.sun.tools.javac.tree.JCTree$JCLambda attribSpeculativeLambda(com.sun.tools.javac.tree.JCTree$JCLambda, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.comp.Attr$ResultInfo);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/tree/JCTree$JCLambda;
    flags: (0x0000) 
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // com.sun.tools.javac.comp.DeferredAttr this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCLambda that
        start local 2 // com.sun.tools.javac.comp.Env env
        start local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
         0: .line 445
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 4 /* stats */
        start local 4 // com.sun.tools.javac.util.ListBuffer stats
         1: .line 446
            aload 4 /* stats */
            aload 1 /* that */
            getfield com.sun.tools.javac.tree.JCTree$JCLambda.params:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.ListBuffer.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 447
            aload 1 /* that */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCLambda.getBodyKind:()Lcom/sun/source/tree/LambdaExpressionTree$BodyKind;
            getstatic com.sun.source.tree.LambdaExpressionTree$BodyKind.EXPRESSION:Lcom/sun/source/tree/LambdaExpressionTree$BodyKind;
            if_acmpne 5
         3: .line 448
            aload 4 /* stats */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.make:Lcom/sun/tools/javac/tree/TreeMaker;
            aload 1 /* that */
            getfield com.sun.tools.javac.tree.JCTree$JCLambda.body:Lcom/sun/tools/javac/tree/JCTree;
            checkcast com.sun.tools.javac.tree.JCTree$JCExpression
            invokevirtual com.sun.tools.javac.tree.TreeMaker.Return:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/tree/JCTree$JCReturn;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
         4: .line 449
            goto 6
         5: .line 450
      StackMap locals: com.sun.tools.javac.util.ListBuffer
      StackMap stack:
            aload 4 /* stats */
            aload 1 /* that */
            getfield com.sun.tools.javac.tree.JCTree$JCLambda.body:Lcom/sun/tools/javac/tree/JCTree;
            checkcast com.sun.tools.javac.tree.JCTree$JCBlock
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
         6: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.make:Lcom/sun/tools/javac/tree/TreeMaker;
            aload 1 /* that */
            getfield com.sun.tools.javac.tree.JCTree$JCLambda.pos:I
            invokevirtual com.sun.tools.javac.tree.TreeMaker.at:(I)Lcom/sun/tools/javac/tree/TreeMaker;
            lconst_0
            aload 4 /* stats */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.tree.TreeMaker.Block:(JLcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/tree/JCTree$JCBlock;
            astore 5 /* lambdaBlock */
        start local 5 // com.sun.tools.javac.tree.JCTree$JCBlock lambdaBlock
         7: .line 453
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 1 /* that */
            aload 2 /* env */
            invokevirtual com.sun.tools.javac.comp.Attr.lambdaEnv:(Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;)Lcom/sun/tools/javac/comp/Env;
            astore 6 /* localEnv */
        start local 6 // com.sun.tools.javac.comp.Env localEnv
         8: .line 455
            aload 6 /* localEnv */
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            aload 3 /* resultInfo */
            putfield com.sun.tools.javac.comp.AttrContext.returnResult:Lcom/sun/tools/javac/comp/Attr$ResultInfo;
         9: .line 456
            aload 0 /* this */
            aload 5 /* lambdaBlock */
            aload 6 /* localEnv */
            aload 3 /* resultInfo */
            invokevirtual com.sun.tools.javac.comp.DeferredAttr.attribSpeculative:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/tree/JCTree;
            checkcast com.sun.tools.javac.tree.JCTree$JCBlock
            astore 7 /* speculativeTree */
        start local 7 // com.sun.tools.javac.tree.JCTree$JCBlock speculativeTree
        10: .line 457
            aload 7 /* speculativeTree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCBlock.getStatements:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.stream:()Ljava/util/stream/Stream;
        11: .line 458
            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
                  com/sun/tools/javac/comp/DeferredAttr.lambda$0(Lcom/sun/tools/javac/tree/JCTree$JCStatement;)Z (6)
                  (Lcom/sun/tools/javac/tree/JCTree$JCStatement;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        12: .line 459
            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;
                  com/sun/tools/javac/comp/DeferredAttr.lambda$1(Lcom/sun/tools/javac/tree/JCTree$JCStatement;)Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl; (6)
                  (Lcom/sun/tools/javac/tree/JCTree$JCStatement;)Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        13: .line 460
            invokestatic com.sun.tools.javac.util.List.collector:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
        14: .line 457
            astore 8 /* args */
        start local 8 // com.sun.tools.javac.util.List args
        15: .line 461
            aload 7 /* speculativeTree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCBlock.getStatements:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.last:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            astore 9 /* lambdaBody */
        start local 9 // com.sun.tools.javac.tree.JCTree lambdaBody
        16: .line 462
            aload 9 /* lambdaBody */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.RETURN:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifeq 18
        17: .line 463
            aload 9 /* lambdaBody */
            checkcast com.sun.tools.javac.tree.JCTree$JCReturn
            getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            astore 9 /* lambdaBody */
        18: .line 465
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr com.sun.tools.javac.tree.JCTree$JCLambda com.sun.tools.javac.comp.Env com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree$JCBlock com.sun.tools.javac.comp.Env com.sun.tools.javac.tree.JCTree$JCBlock com.sun.tools.javac.util.List com.sun.tools.javac.tree.JCTree
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.make:Lcom/sun/tools/javac/tree/TreeMaker;
            aload 8 /* args */
            aload 9 /* lambdaBody */
            invokevirtual com.sun.tools.javac.tree.TreeMaker.Lambda:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/tree/JCTree$JCLambda;
            astore 10 /* speculativeLambda */
        start local 10 // com.sun.tools.javac.tree.JCTree$JCLambda speculativeLambda
        19: .line 466
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 10 /* speculativeLambda */
            invokevirtual com.sun.tools.javac.comp.Attr.preFlow:(Lcom/sun/tools/javac/tree/JCTree$JCLambda;)V
        20: .line 467
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.flow:Lcom/sun/tools/javac/comp/Flow;
            aload 2 /* env */
            aload 10 /* speculativeLambda */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.make:Lcom/sun/tools/javac/tree/TreeMaker;
            iconst_0
            invokevirtual com.sun.tools.javac.comp.Flow.analyzeLambda:(Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/tree/TreeMaker;Z)V
        21: .line 468
            aload 10 /* speculativeLambda */
            astore 12
        22: .line 470
            aload 6 /* localEnv */
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            getfield com.sun.tools.javac.comp.AttrContext.scope:Lcom/sun/tools/javac/code/Scope$WriteableScope;
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.leave:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            pop
        23: .line 468
            aload 12
            areturn
        end local 10 // com.sun.tools.javac.tree.JCTree$JCLambda speculativeLambda
        end local 9 // com.sun.tools.javac.tree.JCTree lambdaBody
        end local 8 // com.sun.tools.javac.util.List args
        end local 7 // com.sun.tools.javac.tree.JCTree$JCBlock speculativeTree
        24: .line 469
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr com.sun.tools.javac.tree.JCTree$JCLambda com.sun.tools.javac.comp.Env com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree$JCBlock com.sun.tools.javac.comp.Env
      StackMap stack: java.lang.Throwable
            astore 11
        25: .line 470
            aload 6 /* localEnv */
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            getfield com.sun.tools.javac.comp.AttrContext.scope:Lcom/sun/tools/javac/code/Scope$WriteableScope;
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.leave:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            pop
        26: .line 471
            aload 11
            athrow
        end local 6 // com.sun.tools.javac.comp.Env localEnv
        end local 5 // com.sun.tools.javac.tree.JCTree$JCBlock lambdaBlock
        end local 4 // com.sun.tools.javac.util.ListBuffer stats
        end local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        end local 2 // com.sun.tools.javac.comp.Env env
        end local 1 // com.sun.tools.javac.tree.JCTree$JCLambda that
        end local 0 // com.sun.tools.javac.comp.DeferredAttr this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lcom/sun/tools/javac/comp/DeferredAttr;
            0   27     1               that  Lcom/sun/tools/javac/tree/JCTree$JCLambda;
            0   27     2                env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            0   27     3         resultInfo  Lcom/sun/tools/javac/comp/Attr$ResultInfo;
            1   27     4              stats  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/tree/JCTree$JCStatement;>;
            7   27     5        lambdaBlock  Lcom/sun/tools/javac/tree/JCTree$JCBlock;
            8   27     6           localEnv  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
           10   24     7    speculativeTree  Lcom/sun/tools/javac/tree/JCTree$JCBlock;
           15   24     8               args  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;>;
           16   24     9         lambdaBody  Lcom/sun/tools/javac/tree/JCTree;
           19   24    10  speculativeLambda  Lcom/sun/tools/javac/tree/JCTree$JCLambda;
      Exception table:
        from    to  target  type
           8    22      24  any
    Signature: (Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/tree/JCTree$JCLambda;
    MethodParameters:
            Name  Flags
      that        
      env         
      resultInfo  

  com.sun.tools.javac.tree.JCTree attribSpeculative(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.comp.Attr$ResultInfo);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/tree/JCTree;
    flags: (0x0000) 
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.comp.DeferredAttr this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
        start local 2 // com.sun.tools.javac.comp.Env env
        start local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
         0: .line 481
            aload 0 /* this */
            aload 1 /* tree */
            aload 2 /* env */
            aload 3 /* resultInfo */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.treeCopier:Lcom/sun/tools/javac/tree/TreeCopier;
         1: .line 482
            aload 0 /* this */
            invokedynamic apply(Lcom/sun/tools/javac/comp/DeferredAttr;)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;
                  com/sun/tools/javac/comp/DeferredAttr.lambda$2(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler; (7)
                  (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;
            aconst_null
         2: .line 481
            invokevirtual com.sun.tools.javac.comp.DeferredAttr.attribSpeculative:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/tree/TreeCopier;Ljava/util/function/Function;Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;)Lcom/sun/tools/javac/tree/JCTree;
            areturn
        end local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        end local 2 // com.sun.tools.javac.comp.Env env
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.comp.DeferredAttr this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/tools/javac/comp/DeferredAttr;
            0    3     1        tree  Lcom/sun/tools/javac/tree/JCTree;
            0    3     2         env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            0    3     3  resultInfo  Lcom/sun/tools/javac/comp/Attr$ResultInfo;
    Signature: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/tree/JCTree;
    MethodParameters:
            Name  Flags
      tree        
      env         
      resultInfo  

  com.sun.tools.javac.tree.JCTree attribSpeculative(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.comp.Attr$ResultInfo, com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;)Lcom/sun/tools/javac/tree/JCTree;
    flags: (0x0000) 
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.comp.DeferredAttr this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
        start local 2 // com.sun.tools.javac.comp.Env env
        start local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        start local 4 // com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext localCache
         0: .line 486
            aload 0 /* this */
            aload 1 /* tree */
            aload 2 /* env */
            aload 3 /* resultInfo */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.treeCopier:Lcom/sun/tools/javac/tree/TreeCopier;
         1: .line 487
            aload 0 /* this */
            invokedynamic apply(Lcom/sun/tools/javac/comp/DeferredAttr;)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;
                  com/sun/tools/javac/comp/DeferredAttr.lambda$3(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler; (7)
                  (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;
            aload 4 /* localCache */
         2: .line 486
            invokevirtual com.sun.tools.javac.comp.DeferredAttr.attribSpeculative:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/tree/TreeCopier;Ljava/util/function/Function;Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;)Lcom/sun/tools/javac/tree/JCTree;
            areturn
        end local 4 // com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext localCache
        end local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        end local 2 // com.sun.tools.javac.comp.Env env
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.comp.DeferredAttr this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/tools/javac/comp/DeferredAttr;
            0    3     1        tree  Lcom/sun/tools/javac/tree/JCTree;
            0    3     2         env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            0    3     3  resultInfo  Lcom/sun/tools/javac/comp/Attr$ResultInfo;
            0    3     4  localCache  Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;
    Signature: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;)Lcom/sun/tools/javac/tree/JCTree;
    MethodParameters:
            Name  Flags
      tree        
      env         
      resultInfo  
      localCache  

  <Z> com.sun.tools.javac.tree.JCTree attribSpeculative(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.comp.Attr$ResultInfo, com.sun.tools.javac.tree.TreeCopier<Z>, java.util.function.Function<com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.util.Log$DeferredDiagnosticHandler>, com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/tree/TreeCopier;Ljava/util/function/Function;Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;)Lcom/sun/tools/javac/tree/JCTree;
    flags: (0x0000) 
    Code:
      stack=5, locals=12, args_size=7
        start local 0 // com.sun.tools.javac.comp.DeferredAttr this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
        start local 2 // com.sun.tools.javac.comp.Env env
        start local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        start local 4 // com.sun.tools.javac.tree.TreeCopier deferredCopier
        start local 5 // java.util.function.Function diagHandlerCreator
        start local 6 // com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext localCache
         0: .line 493
            aload 4 /* deferredCopier */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.TreeCopier.copy:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/tree/JCTree;
            astore 7 /* newTree */
        start local 7 // com.sun.tools.javac.tree.JCTree newTree
         1: .line 494
            aload 2 /* env */
            aload 7 /* newTree */
            aload 2 /* env */
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            aload 2 /* env */
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            getfield com.sun.tools.javac.comp.AttrContext.scope:Lcom/sun/tools/javac/code/Scope$WriteableScope;
            aload 2 /* env */
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            getfield com.sun.tools.javac.comp.AttrContext.scope:Lcom/sun/tools/javac/code/Scope$WriteableScope;
            getfield com.sun.tools.javac.code.Scope$WriteableScope.owner:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.dupUnshared:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Scope$WriteableScope;
            invokevirtual com.sun.tools.javac.comp.AttrContext.dup:(Lcom/sun/tools/javac/code/Scope$WriteableScope;)Lcom/sun/tools/javac/comp/AttrContext;
            invokevirtual com.sun.tools.javac.comp.Env.dup:(Lcom/sun/tools/javac/tree/JCTree;Ljava/lang/Object;)Lcom/sun/tools/javac/comp/Env;
            astore 8 /* speculativeEnv */
        start local 8 // com.sun.tools.javac.comp.Env speculativeEnv
         2: .line 495
            aload 8 /* speculativeEnv */
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            iconst_1
            putfield com.sun.tools.javac.comp.AttrContext.isSpeculative:Z
         3: .line 496
            aload 5 /* diagHandlerCreator */
            aload 7 /* newTree */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.Log$DeferredDiagnosticHandler
            astore 9 /* deferredDiagnosticHandler */
        start local 9 // com.sun.tools.javac.util.Log$DeferredDiagnosticHandler deferredDiagnosticHandler
         4: .line 498
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 7 /* newTree */
            aload 8 /* speculativeEnv */
            aload 3 /* resultInfo */
            invokevirtual com.sun.tools.javac.comp.Attr.attribTree:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/code/Type;
            pop
         5: .line 499
            aload 7 /* newTree */
            astore 11
         6: .line 501
            new com.sun.tools.javac.comp.DeferredAttr$UnenterScanner
            dup
            aload 0 /* this */
            aload 2 /* env */
            getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.modle:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokespecial com.sun.tools.javac.comp.DeferredAttr$UnenterScanner.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
            aload 7 /* newTree */
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$UnenterScanner.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
         7: .line 502
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.log:Lcom/sun/tools/javac/util/Log;
            aload 9 /* deferredDiagnosticHandler */
            invokevirtual com.sun.tools.javac.util.Log.popDiagnosticHandler:(Lcom/sun/tools/javac/util/Log$DiagnosticHandler;)V
         8: .line 503
            aload 6 /* localCache */
            ifnull 10
         9: .line 504
            aload 6 /* localCache */
            invokevirtual com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext.leave:()V
        10: .line 499
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr com.sun.tools.javac.tree.JCTree com.sun.tools.javac.comp.Env com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.tree.TreeCopier java.util.function.Function com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext com.sun.tools.javac.tree.JCTree com.sun.tools.javac.comp.Env com.sun.tools.javac.util.Log$DeferredDiagnosticHandler top com.sun.tools.javac.tree.JCTree
      StackMap stack:
            aload 11
            areturn
        11: .line 500
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr com.sun.tools.javac.tree.JCTree com.sun.tools.javac.comp.Env com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.tree.TreeCopier java.util.function.Function com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext com.sun.tools.javac.tree.JCTree com.sun.tools.javac.comp.Env com.sun.tools.javac.util.Log$DeferredDiagnosticHandler
      StackMap stack: java.lang.Throwable
            astore 10
        12: .line 501
            new com.sun.tools.javac.comp.DeferredAttr$UnenterScanner
            dup
            aload 0 /* this */
            aload 2 /* env */
            getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.modle:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokespecial com.sun.tools.javac.comp.DeferredAttr$UnenterScanner.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
            aload 7 /* newTree */
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$UnenterScanner.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
        13: .line 502
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.log:Lcom/sun/tools/javac/util/Log;
            aload 9 /* deferredDiagnosticHandler */
            invokevirtual com.sun.tools.javac.util.Log.popDiagnosticHandler:(Lcom/sun/tools/javac/util/Log$DiagnosticHandler;)V
        14: .line 503
            aload 6 /* localCache */
            ifnull 16
        15: .line 504
            aload 6 /* localCache */
            invokevirtual com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext.leave:()V
        16: .line 506
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        end local 9 // com.sun.tools.javac.util.Log$DeferredDiagnosticHandler deferredDiagnosticHandler
        end local 8 // com.sun.tools.javac.comp.Env speculativeEnv
        end local 7 // com.sun.tools.javac.tree.JCTree newTree
        end local 6 // com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext localCache
        end local 5 // java.util.function.Function diagHandlerCreator
        end local 4 // com.sun.tools.javac.tree.TreeCopier deferredCopier
        end local 3 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        end local 2 // com.sun.tools.javac.comp.Env env
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.comp.DeferredAttr this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   17     0                       this  Lcom/sun/tools/javac/comp/DeferredAttr;
            0   17     1                       tree  Lcom/sun/tools/javac/tree/JCTree;
            0   17     2                        env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            0   17     3                 resultInfo  Lcom/sun/tools/javac/comp/Attr$ResultInfo;
            0   17     4             deferredCopier  Lcom/sun/tools/javac/tree/TreeCopier<TZ;>;
            0   17     5         diagHandlerCreator  Ljava/util/function/Function<Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;>;
            0   17     6                 localCache  Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;
            1   17     7                    newTree  Lcom/sun/tools/javac/tree/JCTree;
            2   17     8             speculativeEnv  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            4   17     9  deferredDiagnosticHandler  Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;
      Exception table:
        from    to  target  type
           4     6      11  any
    Signature: <Z:Ljava/lang/Object;>(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/tree/TreeCopier<TZ;>;Ljava/util/function/Function<Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;>;Lcom/sun/tools/javac/comp/ArgumentAttr$LocalCacheContext;)Lcom/sun/tools/javac/tree/JCTree;
    MethodParameters:
                    Name  Flags
      tree                
      env                 
      resultInfo          
      deferredCopier      
      diagHandlerCreator  
      localCache          

  private static boolean lambda$0(com.sun.tools.javac.tree.JCTree$JCStatement);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCStatement;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCStatement s
         0: .line 458
            aload 0 /* s */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.VARDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCStatement.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ireturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCStatement s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Lcom/sun/tools/javac/tree/JCTree$JCStatement;

  private static com.sun.tools.javac.tree.JCTree$JCVariableDecl lambda$1(com.sun.tools.javac.tree.JCTree$JCStatement);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCStatement;)Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCStatement t
         0: .line 459
            aload 0 /* t */
            checkcast com.sun.tools.javac.tree.JCTree$JCVariableDecl
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCStatement t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Lcom/sun/tools/javac/tree/JCTree$JCStatement;

  private com.sun.tools.javac.util.Log$DeferredDiagnosticHandler lambda$2(com.sun.tools.javac.tree.JCTree);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.DeferredAttr this
        start local 1 // com.sun.tools.javac.tree.JCTree newTree
         0: .line 482
            new com.sun.tools.javac.comp.DeferredAttr$DeferredAttrDiagHandler
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* newTree */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$DeferredAttrDiagHandler.<init>:(Lcom/sun/tools/javac/util/Log;Lcom/sun/tools/javac/tree/JCTree;)V
            areturn
        end local 1 // com.sun.tools.javac.tree.JCTree newTree
        end local 0 // com.sun.tools.javac.comp.DeferredAttr this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/tools/javac/comp/DeferredAttr;
            0    1     1  newTree  Lcom/sun/tools/javac/tree/JCTree;

  private com.sun.tools.javac.util.Log$DeferredDiagnosticHandler lambda$3(com.sun.tools.javac.tree.JCTree);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.DeferredAttr this
        start local 1 // com.sun.tools.javac.tree.JCTree newTree
         0: .line 487
            new com.sun.tools.javac.comp.DeferredAttr$DeferredAttrDiagHandler
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* newTree */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$DeferredAttrDiagHandler.<init>:(Lcom/sun/tools/javac/util/Log;Lcom/sun/tools/javac/tree/JCTree;)V
            areturn
        end local 1 // com.sun.tools.javac.tree.JCTree newTree
        end local 0 // com.sun.tools.javac.comp.DeferredAttr this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/tools/javac/comp/DeferredAttr;
            0    1     1  newTree  Lcom/sun/tools/javac/tree/JCTree;
}
SourceFile: "DeferredAttr.java"
NestMembers:
  com.sun.tools.javac.comp.DeferredAttr$1  com.sun.tools.javac.comp.DeferredAttr$2  com.sun.tools.javac.comp.DeferredAttr$3  com.sun.tools.javac.comp.DeferredAttr$4  com.sun.tools.javac.comp.DeferredAttr$4$1  com.sun.tools.javac.comp.DeferredAttr$5  com.sun.tools.javac.comp.DeferredAttr$AttrMode  com.sun.tools.javac.comp.DeferredAttr$CheckStuckPolicy  com.sun.tools.javac.comp.DeferredAttr$CheckStuckPolicy$1  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext$StuckNode  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrDiagHandler  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrDiagHandler$PosScanner  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode$1  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode$LambdaBodyStructChecker  com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode$StructuralStuckChecker  com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy  com.sun.tools.javac.comp.DeferredAttr$DeferredType  com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache  com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry  com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter  com.sun.tools.javac.comp.DeferredAttr$DeferredTypeMap  com.sun.tools.javac.comp.DeferredAttr$FilterScanner  com.sun.tools.javac.comp.DeferredAttr$LambdaReturnScanner  com.sun.tools.javac.comp.DeferredAttr$OverloadStuckPolicy  com.sun.tools.javac.comp.DeferredAttr$PolyScanner  com.sun.tools.javac.comp.DeferredAttr$RecoveryDeferredTypeMap  com.sun.tools.javac.comp.DeferredAttr$RecoveryDeferredTypeMap$1  com.sun.tools.javac.comp.DeferredAttr$UnenterScanner
InnerClasses:
  public final BodyKind = com.sun.source.tree.LambdaExpressionTree$BodyKind of com.sun.source.tree.LambdaExpressionTree
  public abstract WriteableScope = com.sun.tools.javac.code.Scope$WriteableScope of com.sun.tools.javac.code.Scope
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public TypeMapping = com.sun.tools.javac.code.Types$TypeMapping of com.sun.tools.javac.code.Types
  LocalCacheContext = com.sun.tools.javac.comp.ArgumentAttr$LocalCacheContext of com.sun.tools.javac.comp.ArgumentAttr
  ResultInfo = com.sun.tools.javac.comp.Attr$ResultInfo of com.sun.tools.javac.comp.Attr
  com.sun.tools.javac.comp.DeferredAttr$1
  com.sun.tools.javac.comp.DeferredAttr$2
  com.sun.tools.javac.comp.DeferredAttr$3
  com.sun.tools.javac.comp.DeferredAttr$4
  com.sun.tools.javac.comp.DeferredAttr$5
  public final AttrMode = com.sun.tools.javac.comp.DeferredAttr$AttrMode of com.sun.tools.javac.comp.DeferredAttr
  CheckStuckPolicy = com.sun.tools.javac.comp.DeferredAttr$CheckStuckPolicy of com.sun.tools.javac.comp.DeferredAttr
  DeferredAttrContext = com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext of com.sun.tools.javac.comp.DeferredAttr
  DeferredAttrDiagHandler = com.sun.tools.javac.comp.DeferredAttr$DeferredAttrDiagHandler of com.sun.tools.javac.comp.DeferredAttr
  DeferredAttrNode = com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode of com.sun.tools.javac.comp.DeferredAttr
  abstract DeferredStuckPolicy = com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy of com.sun.tools.javac.comp.DeferredAttr
  public DeferredType = com.sun.tools.javac.comp.DeferredAttr$DeferredType of com.sun.tools.javac.comp.DeferredAttr
  abstract DeferredTypeCompleter = com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter of com.sun.tools.javac.comp.DeferredAttr
  DeferredTypeMap = com.sun.tools.javac.comp.DeferredAttr$DeferredTypeMap of com.sun.tools.javac.comp.DeferredAttr
  abstract FilterScanner = com.sun.tools.javac.comp.DeferredAttr$FilterScanner of com.sun.tools.javac.comp.DeferredAttr
  LambdaReturnScanner = com.sun.tools.javac.comp.DeferredAttr$LambdaReturnScanner of com.sun.tools.javac.comp.DeferredAttr
  OverloadStuckPolicy = com.sun.tools.javac.comp.DeferredAttr$OverloadStuckPolicy of com.sun.tools.javac.comp.DeferredAttr
  PolyScanner = com.sun.tools.javac.comp.DeferredAttr$PolyScanner of com.sun.tools.javac.comp.DeferredAttr
  public RecoveryDeferredTypeMap = com.sun.tools.javac.comp.DeferredAttr$RecoveryDeferredTypeMap of com.sun.tools.javac.comp.DeferredAttr
  UnenterScanner = com.sun.tools.javac.comp.DeferredAttr$UnenterScanner of com.sun.tools.javac.comp.DeferredAttr
  MethodResolutionPhase = com.sun.tools.javac.comp.Resolve$MethodResolutionPhase of com.sun.tools.javac.comp.Resolve
  public JCBlock = com.sun.tools.javac.tree.JCTree$JCBlock of com.sun.tools.javac.tree.JCTree
  public JCCompilationUnit = com.sun.tools.javac.tree.JCTree$JCCompilationUnit 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 JCIdent = com.sun.tools.javac.tree.JCTree$JCIdent of com.sun.tools.javac.tree.JCTree
  public JCLambda = com.sun.tools.javac.tree.JCTree$JCLambda of com.sun.tools.javac.tree.JCTree
  public JCReturn = com.sun.tools.javac.tree.JCTree$JCReturn of com.sun.tools.javac.tree.JCTree
  public abstract JCStatement = com.sun.tools.javac.tree.JCTree$JCStatement 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 Visitor = com.sun.tools.javac.tree.JCTree$Visitor of com.sun.tools.javac.tree.JCTree
  public Key = com.sun.tools.javac.util.Context$Key of com.sun.tools.javac.util.Context
  public Factory = com.sun.tools.javac.util.JCDiagnostic$Factory of com.sun.tools.javac.util.JCDiagnostic
  public DeferredDiagnosticHandler = com.sun.tools.javac.util.Log$DeferredDiagnosticHandler of com.sun.tools.javac.util.Log
  public abstract DiagnosticHandler = com.sun.tools.javac.util.Log$DiagnosticHandler of com.sun.tools.javac.util.Log
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles