--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Wed Nov 29 09:25:25 2017 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Wed Nov 29 17:31:23 2017 +0000
@@ -946,8 +946,6 @@
}
Type checkLocalVarType(DiagnosticPosition pos, Type t, Name name) {
- //upward project the initializer type
- t = types.upward(t, types.captures(t));
//check that resulting type is not the null type
if (t.hasTag(BOT)) {
log.error(pos, Errors.CantInferLocalVarType(name, Fragments.LocalCantInferNull));
@@ -956,7 +954,9 @@
log.error(pos, Errors.CantInferLocalVarType(name, Fragments.LocalCantInferVoid));
return types.createErrorType(t);
}
- return t;
+
+ //upward project the initializer type
+ return types.upward(t, types.captures(t));
}
Type checkMethod(final Type mtype,