class com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType extends com.sun.tools.javac.comp.ArgumentAttr$ArgumentType<com.sun.tools.javac.tree.JCTree$JCLambda>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType
super_class: com.sun.tools.javac.comp.ArgumentAttr$ArgumentType
{
java.util.Optional<com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> argtypes;
descriptor: Ljava/util/Optional;
flags: (0x0000)
Signature: Ljava/util/Optional<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;
java.util.Optional<com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCReturn>> returnExpressions;
descriptor: Ljava/util/Optional;
flags: (0x0000)
Signature: Ljava/util/Optional<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCReturn;>;>;
final com.sun.tools.javac.comp.ArgumentAttr this$0;
descriptor: Lcom/sun/tools/javac/comp/ArgumentAttr;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$com$sun$source$tree$LambdaExpressionTree$BodyKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
void <init>(com.sun.tools.javac.tree.JCTree$JCLambda, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.tree.JCTree$JCLambda);
descriptor: (Lcom/sun/tools/javac/comp/ArgumentAttr;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree$JCLambda;)V
flags: (0x0000)
Code:
stack=7, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 4
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokespecial com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.<init>:(Lcom/sun/tools/javac/comp/ArgumentAttr;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Ljava/util/Map;)V
1: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
0 2 2 originalLambda Lcom/sun/tools/javac/tree/JCTree$JCLambda;
0 2 3 env Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
0 2 4 speculativeLambda Lcom/sun/tools/javac/tree/JCTree$JCLambda;
Signature: (Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/tree/JCTree$JCLambda;)V
MethodParameters:
Name Flags
this$0 final
originalLambda
env
speculativeLambda
void <init>(com.sun.tools.javac.tree.JCTree$JCLambda, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.tree.JCTree$JCLambda, java.util.Map<com.sun.tools.javac.comp.Attr$ResultInfo, com.sun.tools.javac.code.Type>);
descriptor: (Lcom/sun/tools/javac/comp/ArgumentAttr;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Ljava/util/Map;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=6
start local 0 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
1: aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
invokespecial com.sun.tools.javac.comp.ArgumentAttr$ArgumentType.<init>:(Lcom/sun/tools/javac/comp/ArgumentAttr;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Ljava/util/Map;)V
2: aload 0
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
putfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.argtypes:Ljava/util/Optional;
3: aload 0
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
putfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.returnExpressions:Ljava/util/Optional;
4: return
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
0 5 2 originalLambda Lcom/sun/tools/javac/tree/JCTree$JCLambda;
0 5 3 env Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
0 5 4 speculativeLambda Lcom/sun/tools/javac/tree/JCTree$JCLambda;
0 5 5 speculativeTypes Ljava/util/Map<Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/code/Type;>;
Signature: (Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Ljava/util/Map<Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/code/Type;>;)V
MethodParameters:
Name Flags
this$0 final
originalLambda
env
speculativeLambda
speculativeTypes
com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> argtypes();
descriptor: ()Lcom/sun/tools/javac/util/List;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.argtypes:Ljava/util/Optional;
aload 0
invokedynamic get(Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;)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;
com/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType.lambda$0()Lcom/sun/tools/javac/util/List; (7)
()Lcom/sun/tools/javac/util/List;
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast com.sun.tools.javac.util.List
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCReturn> returnExpressions();
descriptor: ()Lcom/sun/tools/javac/util/List;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.returnExpressions:Ljava/util/Optional;
aload 0
invokedynamic get(Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;)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;
com/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType.lambda$1()Lcom/sun/tools/javac/util/List; (7)
()Lcom/sun/tools/javac/util/List;
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast com.sun.tools.javac.util.List
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCReturn;>;
com.sun.tools.javac.code.Type overloadCheck(com.sun.tools.javac.comp.Attr$ResultInfo, com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext);
descriptor: (Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;)Lcom/sun/tools/javac/code/Type;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
getfield com.sun.tools.javac.comp.ArgumentAttr.attr:Lcom/sun/tools/javac/comp/Attr;
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCPolyExpression
aload 1
aload 0
invokevirtual com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.argtypes:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Attr.getTargetInfo:(Lcom/sun/tools/javac/tree/JCTree$JCPolyExpression;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/comp/Attr$TargetInfo;
astore 3
start local 3 1: aload 3
getfield com.sun.tools.javac.comp.Attr$TargetInfo.descriptor:Lcom/sun/tools/javac/code/Type;
astore 4
start local 4 2: aload 3
getfield com.sun.tools.javac.comp.Attr$TargetInfo.target:Lcom/sun/tools/javac/code/Type;
astore 5
start local 5 3: aload 0
aload 4
aload 1
invokevirtual com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.checkLambdaCompatible:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)V
4: aload 5
5: areturn
end local 5 end local 4 end local 3 6: StackMap locals:
StackMap stack: com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
astore 3
start local 3 7: aload 1
getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
aconst_null
aload 3
invokevirtual com.sun.tools.javac.code.Types$FunctionDescriptorLookupError.getDiagnostic:()Lcom/sun/tools/javac/util/JCDiagnostic;
invokeinterface com.sun.tools.javac.comp.Check$CheckContext.report:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic;)V
8: aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
0 9 1 resultInfo Lcom/sun/tools/javac/comp/Attr$ResultInfo;
0 9 2 deferredAttrContext Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
1 6 3 targetInfo Lcom/sun/tools/javac/comp/Attr$TargetInfo;
2 6 4 lambdaType Lcom/sun/tools/javac/code/Type;
3 6 5 currentTarget Lcom/sun/tools/javac/code/Type;
7 9 3 ex Lcom/sun/tools/javac/code/Types$FunctionDescriptorLookupError;
Exception table:
from to target type
0 5 6 Class com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
MethodParameters:
Name Flags
resultInfo
deferredAttrContext
private void checkLambdaCompatible(com.sun.tools.javac.code.Type, com.sun.tools.javac.comp.Attr$ResultInfo);
descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
astore 3
start local 3 1: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
getfield com.sun.tools.javac.comp.ArgumentAttr.attr:Lcom/sun/tools/javac/comp/Attr;
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Attr.lambdaBodyResult:(Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/comp/Attr$ResultInfo;
astore 4
start local 4 2: invokestatic com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.$SWITCH_TABLE$com$sun$source$tree$LambdaExpressionTree$BodyKind:()[I
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
invokevirtual com.sun.tools.javac.tree.JCTree$JCLambda.getBodyKind:()Lcom/sun/source/tree/LambdaExpressionTree$BodyKind;
invokevirtual com.sun.source.tree.LambdaExpressionTree$BodyKind.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 3
2: 5
default: 9
}
3: StackMap locals: com.sun.tools.javac.comp.Check$CheckContext com.sun.tools.javac.comp.Attr$ResultInfo
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
getfield com.sun.tools.javac.tree.JCTree$JCLambda.body:Lcom/sun/tools/javac/tree/JCTree;
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
getfield com.sun.tools.javac.tree.JCTree$JCLambda.body:Lcom/sun/tools/javac/tree/JCTree;
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
aload 4
invokevirtual com.sun.tools.javac.comp.ArgumentAttr.checkSpeculative:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/code/Type;
pop
4: goto 9
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.returnExpressions:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 8
StackMap locals: com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType com.sun.tools.javac.code.Type com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.comp.Check$CheckContext com.sun.tools.javac.comp.Attr$ResultInfo top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCReturn
astore 5
start local 5 7: aload 0
aload 5
aload 4
invokevirtual com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.checkReturnInStatementLambda:(Lcom/sun/tools/javac/tree/JCTree$JCReturn;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)V
end local 5 8: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: StackMap locals: com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType com.sun.tools.javac.code.Type com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.comp.Check$CheckContext com.sun.tools.javac.comp.Attr$ResultInfo
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
getfield com.sun.tools.javac.comp.ArgumentAttr.attr:Lcom/sun/tools/javac/comp/Attr;
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
aload 1
aload 3
invokevirtual com.sun.tools.javac.comp.Attr.checkLambdaCompatible:(Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/comp/Check$CheckContext;)V
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
0 11 1 descriptor Lcom/sun/tools/javac/code/Type;
0 11 2 resultInfo Lcom/sun/tools/javac/comp/Attr$ResultInfo;
1 11 3 checkContext Lcom/sun/tools/javac/comp/Check$CheckContext;
2 11 4 bodyResultInfo Lcom/sun/tools/javac/comp/Attr$ResultInfo;
7 8 5 ret Lcom/sun/tools/javac/tree/JCTree$JCReturn;
MethodParameters:
Name Flags
descriptor
resultInfo
void checkReturnInStatementLambda(com.sun.tools.javac.tree.JCTree$JCReturn, com.sun.tools.javac.comp.Attr$ResultInfo);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCReturn;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield com.sun.tools.javac.comp.Attr$ResultInfo.pt:Lcom/sun/tools/javac/code/Type;
getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifeq 5
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnull 5
1: aload 2
getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
invokevirtual com.sun.tools.javac.tree.JCTree$JCLambda.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
2: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
getfield com.sun.tools.javac.comp.ArgumentAttr.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
ldc "unexpected.ret.val"
iconst_0
anewarray java.lang.Object
invokevirtual com.sun.tools.javac.util.JCDiagnostic$Factory.fragment:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/sun/tools/javac/util/JCDiagnostic;
3: invokeinterface com.sun.tools.javac.comp.Check$CheckContext.report:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic;)V
4: goto 11
StackMap locals:
StackMap stack:
5: aload 2
getfield com.sun.tools.javac.comp.Attr$ResultInfo.pt:Lcom/sun/tools/javac/code/Type;
getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 11
6: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnonnull 10
7: aload 2
getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
invokevirtual com.sun.tools.javac.tree.JCTree$JCLambda.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
8: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
getfield com.sun.tools.javac.comp.ArgumentAttr.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
ldc "missing.ret.val"
iconst_0
anewarray java.lang.Object
invokevirtual com.sun.tools.javac.util.JCDiagnostic$Factory.fragment:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/sun/tools/javac/util/JCDiagnostic;
9: invokeinterface com.sun.tools.javac.comp.Check$CheckContext.report:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic;)V
10: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
aload 2
invokevirtual com.sun.tools.javac.comp.ArgumentAttr.checkSpeculative:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/code/Type;
pop
11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
0 12 1 ret Lcom/sun/tools/javac/tree/JCTree$JCReturn;
0 12 2 resultInfo Lcom/sun/tools/javac/comp/Attr$ResultInfo;
MethodParameters:
Name Flags
ret
resultInfo
com.sun.tools.javac.code.Type getReturnType(com.sun.tools.javac.tree.JCTree$JCReturn);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCReturn;)Lcom/sun/tools/javac/code/Type;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnonnull 2
1: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
getfield com.sun.tools.javac.comp.ArgumentAttr.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.voidType:Lcom/sun/tools/javac/code/Type$JCVoidType;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
0 3 1 ret Lcom/sun/tools/javac/tree/JCTree$JCReturn;
MethodParameters:
Name Flags
ret
com.sun.tools.javac.comp.ArgumentAttr$ArgumentType<com.sun.tools.javac.tree.JCTree$JCLambda> dup(com.sun.tools.javac.tree.JCTree$JCLambda, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;)Lcom/sun/tools/javac/comp/ArgumentAttr$ArgumentType;
flags: (0x0000)
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType
dup
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.this$0:Lcom/sun/tools/javac/comp/ArgumentAttr;
aload 1
aload 2
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTypes:Ljava/util/Map;
invokespecial com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.<init>:(Lcom/sun/tools/javac/comp/ArgumentAttr;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree$JCLambda;Ljava/util/Map;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
0 1 1 tree Lcom/sun/tools/javac/tree/JCTree$JCLambda;
0 1 2 env Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
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/ArgumentAttr$ArgumentType<Lcom/sun/tools/javac/tree/JCTree$JCLambda;>;
MethodParameters:
Name Flags
tree
env
com.sun.tools.javac.comp.ArgumentAttr$ArgumentType dup(com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.comp.Env);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/comp/Env;)Lcom/sun/tools/javac/comp/ArgumentAttr$ArgumentType;
flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
aload 2
invokevirtual com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.dup:(Lcom/sun/tools/javac/tree/JCTree$JCLambda;Lcom/sun/tools/javac/comp/Env;)Lcom/sun/tools/javac/comp/ArgumentAttr$ArgumentType;
areturn
LocalVariableTable:
Start End Slot Name Signature
static int[] $SWITCH_TABLE$com$sun$source$tree$LambdaExpressionTree$BodyKind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.$SWITCH_TABLE$com$sun$source$tree$LambdaExpressionTree$BodyKind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.sun.source.tree.LambdaExpressionTree$BodyKind.values:()[Lcom/sun/source/tree/LambdaExpressionTree$BodyKind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.sun.source.tree.LambdaExpressionTree$BodyKind.EXPRESSION:Lcom/sun/source/tree/LambdaExpressionTree$BodyKind;
invokevirtual com.sun.source.tree.LambdaExpressionTree$BodyKind.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.sun.source.tree.LambdaExpressionTree$BodyKind.STATEMENT:Lcom/sun/source/tree/LambdaExpressionTree$BodyKind;
invokevirtual com.sun.source.tree.LambdaExpressionTree$BodyKind.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
dup
putstatic com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.$SWITCH_TABLE$com$sun$source$tree$LambdaExpressionTree$BodyKind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
private com.sun.tools.javac.util.List lambda$0();
descriptor: ()Lcom/sun/tools/javac/util/List;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
getfield com.sun.tools.javac.tree.JCTree$JCLambda.params:Lcom/sun/tools/javac/util/List;
invokestatic com.sun.tools.javac.tree.TreeInfo.types:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 1
start local 1 1: aload 0
aload 1
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
putfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.argtypes:Ljava/util/Optional;
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
1 3 1 res Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
private com.sun.tools.javac.util.List lambda$1();
descriptor: ()Lcom/sun/tools/javac/util/List;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 2
start local 2 1: new com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType$1
dup
aload 0
aload 2
invokespecial com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType$1.<init>:(Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;Lcom/sun/tools/javac/util/ListBuffer;)V
2: aload 0
getfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.speculativeTree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCLambda
getfield com.sun.tools.javac.tree.JCTree$JCLambda.body:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType$1.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 2
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
astore 1
start local 1 4: aload 0
aload 1
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
putfield com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType.returnExpressions:Ljava/util/Optional;
5: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javac/comp/ArgumentAttr$ExplicitLambdaType;
4 6 1 res Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCReturn;>;
1 6 2 buf Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/tree/JCTree$JCReturn;>;
}
Signature: Lcom/sun/tools/javac/comp/ArgumentAttr$ArgumentType<Lcom/sun/tools/javac/tree/JCTree$JCLambda;>;
SourceFile: "ArgumentAttr.java"
NestHost: com.sun.tools.javac.comp.ArgumentAttr
InnerClasses:
public final BodyKind = com.sun.source.tree.LambdaExpressionTree$BodyKind of com.sun.source.tree.LambdaExpressionTree
public FunctionDescriptorLookupError = com.sun.tools.javac.code.Types$FunctionDescriptorLookupError of com.sun.tools.javac.code.Types
abstract ArgumentType = com.sun.tools.javac.comp.ArgumentAttr$ArgumentType of com.sun.tools.javac.comp.ArgumentAttr
ExplicitLambdaType = com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType of com.sun.tools.javac.comp.ArgumentAttr
com.sun.tools.javac.comp.ArgumentAttr$ExplicitLambdaType$1
ResultInfo = com.sun.tools.javac.comp.Attr$ResultInfo of com.sun.tools.javac.comp.Attr
TargetInfo = com.sun.tools.javac.comp.Attr$TargetInfo of com.sun.tools.javac.comp.Attr
public abstract CheckContext = com.sun.tools.javac.comp.Check$CheckContext of com.sun.tools.javac.comp.Check
DeferredAttrContext = com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext of com.sun.tools.javac.comp.DeferredAttr
public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
public JCLambda = com.sun.tools.javac.tree.JCTree$JCLambda of com.sun.tools.javac.tree.JCTree
public abstract JCPolyExpression = com.sun.tools.javac.tree.JCTree$JCPolyExpression 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 DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic
public Factory = com.sun.tools.javac.util.JCDiagnostic$Factory of com.sun.tools.javac.util.JCDiagnostic
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles