mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
6806876: ClassCastException occurs in assignment expressions without any heap pollutions
Intersection types should be considered as non-reifiable by javac Reviewed-by: jjg
This commit is contained in:
parent
7d420d30b9
commit
ac4b216060
4 changed files with 55 additions and 7 deletions
|
@ -1247,14 +1247,18 @@ public class Types {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean visitClassType(ClassType t, Void ignored) {
|
public Boolean visitClassType(ClassType t, Void ignored) {
|
||||||
if (!t.isParameterized())
|
if (t.isCompound())
|
||||||
return true;
|
return false;
|
||||||
|
else {
|
||||||
|
if (!t.isParameterized())
|
||||||
|
return true;
|
||||||
|
|
||||||
for (Type param : t.allparams()) {
|
for (Type param : t.allparams()) {
|
||||||
if (!param.isUnbound())
|
if (!param.isUnbound())
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -761,7 +761,7 @@ compiler.warn.unchecked.meth.invocation.applied=\
|
||||||
found: {3}
|
found: {3}
|
||||||
|
|
||||||
compiler.warn.unchecked.generic.array.creation=\
|
compiler.warn.unchecked.generic.array.creation=\
|
||||||
[unchecked] unchecked generic array creation of type {0} for varargs parameter
|
[unchecked] unchecked generic array creation for varargs parameter of type {0}
|
||||||
|
|
||||||
compiler.warn.missing.deprecated.annotation=\
|
compiler.warn.missing.deprecated.annotation=\
|
||||||
[dep-ann] deprecated item is not annotated with @Deprecated
|
[dep-ann] deprecated item is not annotated with @Deprecated
|
||||||
|
|
40
langtools/test/tools/javac/varargs/6806876/T6806876.java
Normal file
40
langtools/test/tools/javac/varargs/6806876/T6806876.java
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* 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 6806876
|
||||||
|
* @author mcimadamore
|
||||||
|
* @summary ClassCastException occurs in assignment expressions without any heap pollutions
|
||||||
|
* @compile/fail/ref=T6806876.out -Xlint:unchecked -Werror -XDrawDiagnostics T6806876.java
|
||||||
|
*/
|
||||||
|
|
||||||
|
class T6806876 {
|
||||||
|
void test(Integer i, Long l) {
|
||||||
|
Comparable<?>[] res = m(i, l);
|
||||||
|
}
|
||||||
|
|
||||||
|
<T> T[] m(T...a) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
4
langtools/test/tools/javac/varargs/6806876/T6806876.out
Normal file
4
langtools/test/tools/javac/varargs/6806876/T6806876.out
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
T6806876.java:34:32: compiler.warn.unchecked.generic.array.creation: java.lang.Number&java.lang.Comparable<? extends java.lang.Number&java.lang.Comparable<?>>[]
|
||||||
|
- compiler.err.warnings.and.werror
|
||||||
|
1 error
|
||||||
|
1 warning
|
Loading…
Add table
Add a link
Reference in a new issue