test/tools/javac/generics/7034511/T7034511b.java

Wed, 17 Jul 2013 14:14:49 +0100

author
mcimadamore
date
Wed, 17 Jul 2013 14:14:49 +0100
changeset 1901
db2c539819dd
parent 1721
abd153854f16
child 2525
2eb010b6cb22
permissions
-rw-r--r--

7041019: Bogus type-variable substitution with array types with dependencies on accessibility check
Summary: call to upperBound() when performing type-variable substitution on element type leads to unsoundness
Reviewed-by: jjg

mcimadamore@970 1 /*
mcimadamore@970 2 * @test /nodynamiccopyright/
mcimadamore@1901 3 * @bug 7034511 7040883 7041019
mcimadamore@970 4 * @summary Loophole in typesafety
mcimadamore@970 5 * @compile/fail/ref=T7034511b.out -XDrawDiagnostics T7034511b.java
mcimadamore@970 6 */
mcimadamore@970 7
mcimadamore@970 8 class T7034511b {
mcimadamore@970 9 static class MyList<E> {
mcimadamore@970 10 E toArray(E[] e) { return null; }
mcimadamore@970 11 }
mcimadamore@970 12
mcimadamore@970 13 void test(MyList<?> ml, Object o[]) {
mcimadamore@970 14 ml.toArray(o);
mcimadamore@970 15 }
mcimadamore@970 16 }

mercurial