diff -r de932285124c -r 1df20330f6bd src/share/classes/com/sun/tools/javac/comp/Attr.java --- a/src/share/classes/com/sun/tools/javac/comp/Attr.java Tue Feb 05 21:55:41 2013 -0800 +++ b/src/share/classes/com/sun/tools/javac/comp/Attr.java Wed Feb 06 14:03:39 2013 +0000 @@ -43,7 +43,7 @@ import com.sun.tools.javac.comp.Check.CheckContext; import com.sun.tools.javac.comp.DeferredAttr.AttrMode; import com.sun.tools.javac.comp.Infer.InferenceContext; -import com.sun.tools.javac.comp.Infer.InferenceContext.FreeTypeListener; +import com.sun.tools.javac.comp.Infer.FreeTypeListener; import com.sun.tools.javac.jvm.*; import com.sun.tools.javac.tree.*; import com.sun.tools.javac.tree.JCTree.*; @@ -244,8 +244,8 @@ @Override public void typesInferred(InferenceContext inferenceContext) { ResultInfo pendingResult = - resultInfo.dup(inferenceContext.asInstType(resultInfo.pt, types)); - check(tree, inferenceContext.asInstType(found, types), ownkind, pendingResult); + resultInfo.dup(inferenceContext.asInstType(resultInfo.pt)); + check(tree, inferenceContext.asInstType(found), ownkind, pendingResult); } }); return tree.type = resultInfo.pt; @@ -2415,7 +2415,7 @@ inferenceContext.addFreeTypeListener(ts, new FreeTypeListener() { @Override public void typesInferred(InferenceContext inferenceContext) { - checkAccessibleTypes(pos, env, inferenceContext, inferenceContext.asInstTypes(ts, types)); + checkAccessibleTypes(pos, env, inferenceContext, inferenceContext.asInstTypes(ts)); } }); } else { @@ -2440,7 +2440,7 @@ @Override public boolean compatible(Type found, Type req, Warner warn) { //return type must be compatible in both current context and assignment context - return chk.basicHandler.compatible(found, inferenceContext().asFree(req, types), warn); + return chk.basicHandler.compatible(found, inferenceContext().asFree(req), warn); } @Override @@ -2475,7 +2475,7 @@ * descriptor. */ private void checkLambdaCompatible(JCLambda tree, Type descriptor, CheckContext checkContext, boolean speculativeAttr) { - Type returnType = checkContext.inferenceContext().asFree(descriptor.getReturnType(), types); + Type returnType = checkContext.inferenceContext().asFree(descriptor.getReturnType()); //return values have already been checked - but if lambda has no return //values, we must ensure that void/value compatibility is correct; @@ -2487,13 +2487,13 @@ diags.fragment("missing.ret.val", returnType))); } - List argTypes = checkContext.inferenceContext().asFree(descriptor.getParameterTypes(), types); + List argTypes = checkContext.inferenceContext().asFree(descriptor.getParameterTypes()); if (!types.isSameTypes(argTypes, TreeInfo.types(tree.params))) { checkContext.report(tree, diags.fragment("incompatible.arg.types.in.lambda")); } if (!speculativeAttr) { - List thrownTypes = checkContext.inferenceContext().asFree(descriptor.getThrownTypes(), types); + List thrownTypes = checkContext.inferenceContext().asFree(descriptor.getThrownTypes()); if (chk.unhandled(tree.inferredThrownTypes == null ? List.nil() : tree.inferredThrownTypes, thrownTypes).nonEmpty()) { log.error(tree, "incompatible.thrown.types.in.lambda", tree.inferredThrownTypes); } @@ -2680,7 +2680,7 @@ @SuppressWarnings("fallthrough") void checkReferenceCompatible(JCMemberReference tree, Type descriptor, Type refType, CheckContext checkContext, boolean speculativeAttr) { - Type returnType = checkContext.inferenceContext().asFree(descriptor.getReturnType(), types); + Type returnType = checkContext.inferenceContext().asFree(descriptor.getReturnType()); Type resType; switch (tree.getMode()) { @@ -2712,7 +2712,7 @@ } if (!speculativeAttr) { - List thrownTypes = checkContext.inferenceContext().asFree(descriptor.getThrownTypes(), types); + List thrownTypes = checkContext.inferenceContext().asFree(descriptor.getThrownTypes()); if (chk.unhandled(refType.getThrownTypes(), thrownTypes).nonEmpty()) { log.error(tree, "incompatible.thrown.types.in.mref", refType.getThrownTypes()); } @@ -2728,7 +2728,7 @@ if (inferenceContext.free(descriptorType)) { inferenceContext.addFreeTypeListener(List.of(pt, descriptorType), new FreeTypeListener() { public void typesInferred(InferenceContext inferenceContext) { - setFunctionalInfo(fExpr, pt, inferenceContext.asInstType(descriptorType, types), inferenceContext); + setFunctionalInfo(fExpr, pt, inferenceContext.asInstType(descriptorType), inferenceContext); } }); } else {