# HG changeset patch # User vromero # Date 1511797242 18000 # Node ID 3b1ef48862cf3a545515c3b8cbbe5a8151fd3c83 # Parent cd2764b618b961bee3d274de916fe407afc28c68 8185983: Javac should reject TypeArguments on field access expression Reviewed-by: mcimadamore diff -r cd2764b618b9 -r 3b1ef48862cf src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java Mon Nov 27 17:04:33 2017 +0530 +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java Mon Nov 27 10:40:42 2017 -0500 @@ -1319,6 +1319,9 @@ break loop; case DOT: nextToken(); + if (token.kind == TokenKind.IDENTIFIER && typeArgs != null) { + return illegal(); + } int oldmode = mode; mode &= ~NOPARAMS; typeArgs = typeArgumentsOpt(EXPR); diff -r cd2764b618b9 -r 3b1ef48862cf test/langtools/tools/javac/T8185983/RejectTypeArgsOnSelectTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/langtools/tools/javac/T8185983/RejectTypeArgsOnSelectTest.java Mon Nov 27 10:40:42 2017 -0500 @@ -0,0 +1,12 @@ +/* + * @test /nodynamiccopyright/ + * @bug 8185983 + * @summary Javac should reject TypeArguments on field access expression + * @compile/fail/ref=RejectTypeArgsOnSelectTest.out -XDrawDiagnostics RejectTypeArgsOnSelectTest.java + */ + +import java.util.*; + +class RejectTypeArgsOnSelectTest { + Iterator nullIter = Collections.EMPTY_LIST.iterator(); +} diff -r cd2764b618b9 -r 3b1ef48862cf test/langtools/tools/javac/T8185983/RejectTypeArgsOnSelectTest.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/langtools/tools/javac/T8185983/RejectTypeArgsOnSelectTest.out Mon Nov 27 10:40:42 2017 -0500 @@ -0,0 +1,2 @@ +RejectTypeArgsOnSelectTest.java:11:104: compiler.err.illegal.start.of.expr +1 error