langtools/test/tools/javac/cast/7005095/T7005095neg.java
author mcimadamore
Thu, 09 Dec 2010 15:50:10 +0000
changeset 7627 de2a86da165e
permissions -rw-r--r--
7005095: Cast: compile reject sensible cast from final class to interface Summary: a previous fix to cast conversion has made the compiler too strict w.r.t. final cast Reviewed-by: jjg
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7627
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     1
/*
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     2
 * @test /nodynamiccopyright/
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     3
 * @bug     7005095
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     4
 * @summary Cast: compile reject sensible cast from final class to interface
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     5
 * @compile/fail/ref=T7005095neg.out -XDrawDiagnostics T7005095neg.java
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     6
 */
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     7
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     8
class T7005095pos<T extends Integer> {
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
     9
    interface Foo<T> {}
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
    10
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
    11
    static final class FooImpl implements Foo<String> {}
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
    12
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
    13
    Object o = (Foo<T>) new FooImpl();
de2a86da165e 7005095: Cast: compile reject sensible cast from final class to interface
mcimadamore
parents:
diff changeset
    14
}