Mercurial > hg > icedtea9-forest > langtools
changeset 1203:7a836147b266
4881269: improve diagnostic for ill-formed tokens
Reviewed-by: mcimadamore
author | jjg |
---|---|
date | Tue, 03 Jan 2012 11:37:00 -0800 |
parents | 67512b631961 |
children | a07eef109532 |
files | src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java src/share/classes/com/sun/tools/javac/resources/compiler.properties test/tools/javac/diags/examples/IllegalDot.java test/tools/javac/parser/T4881269.java test/tools/javac/parser/T4881269.out |
diffstat | 5 files changed, 79 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java Wed Dec 28 10:52:11 2011 -0800 +++ b/src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java Tue Jan 03 11:37:00 2012 -0800 @@ -535,13 +535,14 @@ reader.putChar('.'); scanFractionAndSuffix(pos); } else if (reader.ch == '.') { + int savePos = reader.bp; reader.putChar('.'); reader.putChar('.', true); if (reader.ch == '.') { reader.scanChar(); reader.putChar('.'); tk = TokenKind.ELLIPSIS; } else { - lexError(pos, "malformed.fp.lit"); + lexError(savePos, "illegal.dot"); } } else { tk = TokenKind.DOT;
--- a/src/share/classes/com/sun/tools/javac/resources/compiler.properties Wed Dec 28 10:52:11 2011 -0800 +++ b/src/share/classes/com/sun/tools/javac/resources/compiler.properties Tue Jan 03 11:37:00 2012 -0800 @@ -384,6 +384,9 @@ compiler.err.illegal.underscore=\ illegal underscore +compiler.err.illegal.dot=\ + illegal ''.'' + # 0: symbol compiler.err.illegal.qual.not.icls=\ illegal qualifier; {0} is not an inner class
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/IllegalDot.java Tue Jan 03 11:37:00 2012 -0800 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +// key: compiler.err.illegal.dot +// key: compiler.err.expected +// key: compiler.err.illegal.start.of.type + +class X { + void m(Object.. args) { } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/parser/T4881269.java Tue Jan 03 11:37:00 2012 -0800 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 4881269 + * @summary improve diagnostic for ill-formed tokens + * @compile/fail/ref=T4881269.out -XDrawDiagnostics T4881269.java + */ + +public class T4881269 { + java.io..PrintStream s; + void m() { System.err..println(); } + void m(Object.. o) { } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/parser/T4881269.out Tue Jan 03 11:37:00 2012 -0800 @@ -0,0 +1,9 @@ +T4881269.java:32:13: compiler.err.illegal.dot +T4881269.java:33:27: compiler.err.illegal.dot +T4881269.java:33:22: compiler.err.not.stmt +T4881269.java:34:19: compiler.err.illegal.dot +T4881269.java:34:20: compiler.err.expected: ';' +T4881269.java:34:22: compiler.err.illegal.start.of.type +T4881269.java:34:23: compiler.err.expected: token.identifier +T4881269.java:34:25: compiler.err.expected: ';' +8 errors