test/tools/javac/cast/6665356/T6665356.java

Wed, 27 Apr 2016 01:34:52 +0800

author
aoqi
date
Wed, 27 Apr 2016 01:34:52 +0800
changeset 0
959103a6100f
child 2525
2eb010b6cb22
permissions
-rw-r--r--

Initial load
http://hg.openjdk.java.net/jdk8u/jdk8u/langtools/
changeset: 2573:53ca196be1ae
tag: jdk8u25-b17

aoqi@0 1 /*
aoqi@0 2 * @test /nodynamiccopyright/
aoqi@0 3 * @author Maurizio Cimadamore
aoqi@0 4 * @bug 6665356
aoqi@0 5 * @summary Cast not allowed when both qualifying type and inner class are parameterized
aoqi@0 6 * @compile/fail/ref=T6665356.out -XDrawDiagnostics T6665356.java
aoqi@0 7 */
aoqi@0 8
aoqi@0 9 class T6665356 {
aoqi@0 10 class Outer<S> {
aoqi@0 11 class Inner<T> {}
aoqi@0 12 }
aoqi@0 13
aoqi@0 14 void cast1(Outer<Integer>.Inner<Long> p) {
aoqi@0 15 Object o = (Outer<Integer>.Inner<Long>)p;
aoqi@0 16 }
aoqi@0 17
aoqi@0 18 void cast2(Outer<Integer>.Inner<Long> p) {
aoqi@0 19 Object o = (Outer<? extends Number>.Inner<Long>)p;
aoqi@0 20 }
aoqi@0 21
aoqi@0 22 void cast3(Outer<Integer>.Inner<Long> p) {
aoqi@0 23 Object o = (Outer<Integer>.Inner<? extends Number>)p;
aoqi@0 24 }
aoqi@0 25
aoqi@0 26 void cast4(Outer<Integer>.Inner<Long> p) {
aoqi@0 27 Object o = (Outer<? extends Number>.Inner<? extends Number>)p;
aoqi@0 28 }
aoqi@0 29
aoqi@0 30 void cast5(Outer<Integer>.Inner<Long> p) {
aoqi@0 31 Object o = (Outer<? super Number>.Inner<Long>)p;
aoqi@0 32 }
aoqi@0 33
aoqi@0 34 void cast6(Outer<Integer>.Inner<Long> p) {
aoqi@0 35 Object o = (Outer<Integer>.Inner<? super Number>)p;
aoqi@0 36 }
aoqi@0 37
aoqi@0 38 void cast7(Outer<Integer>.Inner<Long> p) {
aoqi@0 39 Object o = (Outer<? super Number>.Inner<? super Number>)p;
aoqi@0 40 }
aoqi@0 41
aoqi@0 42 void cast8(Outer<Integer>.Inner<Long> p) {
aoqi@0 43 Object o = (Outer<? extends String>.Inner<Long>)p;
aoqi@0 44 }
aoqi@0 45
aoqi@0 46 void cast9(Outer<Integer>.Inner<Long> p) {
aoqi@0 47 Object o = (Outer<Integer>.Inner<? extends String>)p;
aoqi@0 48 }
aoqi@0 49
aoqi@0 50 void cast10(Outer<Integer>.Inner<Long> p) {
aoqi@0 51 Object o = (Outer<? super String>.Inner<Long>)p;
aoqi@0 52 }
aoqi@0 53
aoqi@0 54 void cast11(Outer<Integer>.Inner<Long> p) {
aoqi@0 55 Object o = (Outer<Integer>.Inner<? super String>)p;
aoqi@0 56 }
aoqi@0 57 }

mercurial