--- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Fri May 04 07:55:51 2012 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Thu May 10 12:32:58 2012 -0700
@@ -2206,10 +2206,15 @@
} else {
JCExpression t = term(EXPR | TYPE);
if ((lastmode & TYPE) != 0 &&
- (token.kind == IDENTIFIER || token.kind == ASSERT || token.kind == ENUM))
+ (token.kind == IDENTIFIER || token.kind == ASSERT ||
+ token.kind == ENUM)) {
return variableDeclarators(modifiersOpt(), t, stats).toList();
- else
+ } else if ((lastmode & TYPE) != 0 && token.kind == COLON) {
+ error(pos, "bad.initializer", "for-loop");
+ return List.of((JCStatement)F.at(pos).VarDef(null, null, t, null));
+ } else {
return moreStatementExpressions(pos, t, stats).toList();
+ }
}
}