langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ArgumentAttr.java
changeset 45504 ea7475564d07
parent 45498 0848a6cbe2a3
equal deleted inserted replaced
45503:d23ae2d67a5d 45504:ea7475564d07
    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);