langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ArgumentAttr.java
equal
deleted
inserted
replaced
39 import com.sun.tools.javac.comp.DeferredAttr.DeferredType; |
39 import com.sun.tools.javac.comp.DeferredAttr.DeferredType; |
40 import com.sun.tools.javac.comp.DeferredAttr.DeferredTypeCompleter; |
40 import com.sun.tools.javac.comp.DeferredAttr.DeferredTypeCompleter; |
41 import com.sun.tools.javac.comp.DeferredAttr.LambdaReturnScanner; |
41 import com.sun.tools.javac.comp.DeferredAttr.LambdaReturnScanner; |
42 import com.sun.tools.javac.comp.Infer.PartiallyInferredMethodType; |
42 import com.sun.tools.javac.comp.Infer.PartiallyInferredMethodType; |
43 import com.sun.tools.javac.comp.Resolve.MethodResolutionPhase; |
43 import com.sun.tools.javac.comp.Resolve.MethodResolutionPhase; |
|
44 import com.sun.tools.javac.resources.CompilerProperties.Fragments; |
44 import com.sun.tools.javac.tree.JCTree; |
45 import com.sun.tools.javac.tree.JCTree; |
45 import com.sun.tools.javac.tree.JCTree.JCConditional; |
46 import com.sun.tools.javac.tree.JCTree.JCConditional; |
46 import com.sun.tools.javac.tree.JCTree.JCExpression; |
47 import com.sun.tools.javac.tree.JCTree.JCExpression; |
47 import com.sun.tools.javac.tree.JCTree.JCLambda; |
48 import com.sun.tools.javac.tree.JCTree.JCLambda; |
48 import com.sun.tools.javac.tree.JCTree.JCLambda.ParameterKind; |
49 import com.sun.tools.javac.tree.JCTree.JCLambda.ParameterKind; |
431 ResultInfo localInfo = resultInfo.dup(attr.conditionalContext(resultInfo.checkContext)); |
432 ResultInfo localInfo = resultInfo.dup(attr.conditionalContext(resultInfo.checkContext)); |
432 if (speculativeTree.isStandalone()) { |
433 if (speculativeTree.isStandalone()) { |
433 return localInfo.check(speculativeTree, speculativeTree.type); |
434 return localInfo.check(speculativeTree, speculativeTree.type); |
434 } else if (resultInfo.pt.hasTag(VOID)) { |
435 } else if (resultInfo.pt.hasTag(VOID)) { |
435 //this means we are returning a poly conditional from void-compatible lambda expression |
436 //this means we are returning a poly conditional from void-compatible lambda expression |
436 resultInfo.checkContext.report(tree, attr.diags.fragment("conditional.target.cant.be.void")); |
437 resultInfo.checkContext.report(tree, attr.diags.fragment(Fragments.ConditionalTargetCantBeVoid)); |
437 return attr.types.createErrorType(resultInfo.pt); |
438 return attr.types.createErrorType(resultInfo.pt); |
438 } else { |
439 } else { |
439 //poly |
440 //poly |
440 checkSpeculative(speculativeTree.truepart, localInfo); |
441 checkSpeculative(speculativeTree.truepart, localInfo); |
441 checkSpeculative(speculativeTree.falsepart, localInfo); |
442 checkSpeculative(speculativeTree.falsepart, localInfo); |