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

Tue, 12 Apr 2011 20:56:16 -0700

author
mcimadamore
date
Tue, 12 Apr 2011 20:56:16 -0700
changeset 970
f00986f55961
child 996
384ea9a98912
permissions
-rw-r--r--

7034511: Loophole in typesafety
Summary: Type-variable substutution takes upper bound of replaced captured type-variable
Reviewed-by: dlsmith

mcimadamore@970 1 /*
mcimadamore@970 2 * @test /nodynamiccopyright/
mcimadamore@970 3 * @bug 7034511
mcimadamore@970 4 * @summary Loophole in typesafety
mcimadamore@970 5 * @compile/fail/ref=T7034511a.out -XDrawDiagnostics T7034511a.java
mcimadamore@970 6 */
mcimadamore@970 7
mcimadamore@970 8 class T7034511a {
mcimadamore@970 9
mcimadamore@970 10 interface A<T> {
mcimadamore@970 11 void foo(T x);
mcimadamore@970 12 }
mcimadamore@970 13
mcimadamore@970 14 interface B<T> extends A<T[]> { }
mcimadamore@970 15
mcimadamore@970 16 static abstract class C implements B<Integer> {
mcimadamore@970 17 <T extends B<?>> void test(T x, String[] ss) {
mcimadamore@970 18 x.foo(ss);
mcimadamore@970 19 }
mcimadamore@970 20 }
mcimadamore@970 21 }

mercurial