1.1 --- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Thu Oct 04 13:04:53 2012 +0100 1.2 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Fri Oct 05 14:35:24 2012 +0100 1.3 @@ -950,12 +950,13 @@ 1.4 break; 1.5 case LPAREN: 1.6 if (typeArgs == null && (mode & EXPR) != 0) { 1.7 - if (peekToken(FINAL) || 1.8 + if (peekToken(MONKEYS_AT) || 1.9 + peekToken(FINAL) || 1.10 peekToken(RPAREN) || 1.11 peekToken(IDENTIFIER, COMMA) || 1.12 peekToken(IDENTIFIER, RPAREN, ARROW)) { 1.13 //implicit n-ary lambda 1.14 - t = lambdaExpressionOrStatement(true, peekToken(FINAL), pos); 1.15 + t = lambdaExpressionOrStatement(true, peekToken(MONKEYS_AT) || peekToken(FINAL), pos); 1.16 break; 1.17 } else { 1.18 nextToken(); 1.19 @@ -1343,11 +1344,6 @@ 1.20 } 1.21 1.22 JCExpression lambdaExpressionOrStatementRest(List<JCVariableDecl> args, int pos) { 1.23 - if (token.kind != ARROW) { 1.24 - //better error recovery 1.25 - return F.at(pos).Erroneous(args); 1.26 - } 1.27 - 1.28 checkLambda(); 1.29 accept(ARROW); 1.30