# HG changeset patch # User mcimadamore # Date 1249949533 -3600 # Node ID a6fd77fe81df7c038c7416a3fd40d50871ceffe3 # Parent a0a7f7f2a6e5739dbe1911f09b861c6911860eba 6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 Summary: javac needs to synthetize a fake java.lang.Void symbol if one is not given on the classpath Reviewed-by: jjg diff -r a0a7f7f2a6e5 -r a6fd77fe81df langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java --- a/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:11:37 2009 +0100 +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:12:13 2009 +0100 @@ -193,7 +193,7 @@ public void initType(Type type, String name, String bname) { initType(type, name); - boxedName[type.tag] = names.fromString("java.lang." + bname); + boxedName[type.tag] = names.fromString("java.lang." + bname); } /** The class symbol that owns all predefined symbols. @@ -467,6 +467,7 @@ synthesizeMHTypeIfMissing(invokeDynamicType); synthesizeBoxTypeIfMissing(doubleType); synthesizeBoxTypeIfMissing(floatType); + synthesizeBoxTypeIfMissing(voidType); // Enter a synthetic class that is used to mark Sun // proprietary classes in ct.sym. This class does not have a diff -r a0a7f7f2a6e5 -r a6fd77fe81df langtools/test/tools/javac/6390045/T6390045a.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/6390045/T6390045a.java Tue Aug 11 01:12:13 2009 +0100 @@ -0,0 +1,38 @@ +/* + * Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6390045 + * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 + * + * @author mcimadamore + * @compile -XDfailcomplete=java.lang.Void T6390045a.java + */ + +class T6390045a { + boolean b; + short s; + Object o; + Object p = b ? o : s; +} diff -r a0a7f7f2a6e5 -r a6fd77fe81df langtools/test/tools/javac/6390045/T6390045b.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/6390045/T6390045b.java Tue Aug 11 01:12:13 2009 +0100 @@ -0,0 +1,38 @@ +/* + * Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6390045 + * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 + * + * @author mcimadamore + * @compile -XDfailcomplete=java.lang.Void T6390045b.java + */ + +class T6390045b { + short s; + Object o; + Object p = choose(o, s); + T choose(T t1, T t2) { return t1; } +}