--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Fri Jun 20 10:56:47 2014 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Fri Jun 20 20:36:54 2014 +0100
@@ -534,8 +534,8 @@
Type checkType(final DiagnosticPosition pos, final Type found, final Type req, final CheckContext checkContext) {
final Infer.InferenceContext inferenceContext = checkContext.inferenceContext();
- if (inferenceContext.free(req)) {
- inferenceContext.addFreeTypeListener(List.of(req), new FreeTypeListener() {
+ if (inferenceContext.free(req) || inferenceContext.free(found)) {
+ inferenceContext.addFreeTypeListener(List.of(req, found), new FreeTypeListener() {
@Override
public void typesInferred(InferenceContext inferenceContext) {
checkType(pos, inferenceContext.asInstType(found), inferenceContext.asInstType(req), checkContext);