1 /* 2 * @test 3 * @bug 8031744 4 * @compile TestTypeAnnotatedParameterizedParameter.java 5 */ 6 import java.lang.annotation.*; 7 import java.util.List; 8 9 public class TestTypeAnnotatedParameterizedParameter<E> { 10 @Target(ElementType.TYPE_USE) 11 public @interface TA {} 12 13 public static <M> void m(TestTypeAnnotatedParameterizedParameter<? extends @TA M> param) { } 14 15 public <Z> void m2(Z z1, Z z2) { 16 Z z0 = z1; 17 z1 = z2; 18 z2 = z0; 19 } 20 21 public <Z> void m3(@TA Z z1, Z z2) { 22 Z z0 = z1; 23 z1 = z2; 24 z2 = z0; 25 } 26 27 public <Z> void m4(Z z1, @TA Z z2) { 28 Z z0 = z1; 29 z1 = z2; 30 z2 = z0; 31 } 32 public <Z> void m5(List<? extends Z> z1, List<? extends Z> z2) { 33 z1 = z2; 34 z2 = z1; 35 } 36 37 public <Z> void m6(List<? extends @TA Z> z1, List<? extends Z> z2) { 38 z1 = z2; 39 z2 = z1; 40 } 41 42 public <Z> void m65(Z z1, @TA Z z2) { 43 z1 = z2; 44 z2 = z1; 45 } 46 47 public <Z> void m7(List<? extends Z> z1, List<? extends @TA Z> z2) { 48 z1 = z2; 49 z2 = z1; 50 } 51 52 public <Z> void m8(List<@TA ? extends Z> z1, List<? extends Z> z2) { 53 z1 = z2; 54 z2 = z1; 55 } 56 57 public <Z> void m9(List<? extends Z> z1, List<@TA ? extends Z> z2) { 58 z1 = z2; 59 z2 = z1; 60 } 61 62 public <Z> void m10(List<? extends List<? extends @TA Z>> z1, List<? extends List<? extends Z>> z2) { 63 z1 = z2; 64 z2 = z1; 65 } 66 67 public <Z> void m11(List<? extends List<? extends Z>> z1, List<? extends List<? extends @TA Z>> z2) { 68 z1 = z2; 69 z2 = z1; 70 } 71 }