1 2 import java.io.*; 3 import java.util.*; 4 import java.lang.*; 5 import java.lang.reflect.*; 6 import java.lang.annotation.*; 7 8 9 class TypeAnnoCls0 { 10 11 } 12 13 @Target(ElementType.TYPE_USE) 14 @Retention(RetentionPolicy.RUNTIME) 15 @Repeatable(TypeAnno1Container.class) 16 @interface TypeAnno1 { 17 String value(); 18 } 19 @Target(ElementType.TYPE_USE) 20 @Retention(RetentionPolicy.RUNTIME) 21 @Repeatable(TypeAnno2Container.class) 22 @interface TypeAnno2 { 23 String value(); 24 } 25 @Target(ElementType.TYPE_USE) 26 @Retention(RetentionPolicy.RUNTIME) 27 @Repeatable(TypeAnno3Container.class) 28 @interface TypeAnno3 { 29 } 30 @Target(ElementType.TYPE_USE) 31 @Retention(RetentionPolicy.RUNTIME) 32 @interface TypeAnno1Container { 33 TypeAnno1[] value(); 34 } 35 @Target(ElementType.TYPE_USE) 36 @Retention(RetentionPolicy.RUNTIME) 37 @interface TypeAnno2Container { 38 TypeAnno2[] value(); 39 } 40 @Target(ElementType.TYPE_USE) 41 @Retention(RetentionPolicy.RUNTIME) 42 @interface TypeAnno3Container { 43 TypeAnno3[] value(); 44 } 45 46 class TypeAnnoCls1 { 47 48 public String m( TypeAnnoCls1 this) {return null;} 49 50 } 51 52 53 class TypeAnnoCls2 { 54 55 public String m(@TypeAnno1("TypeAnno1") TypeAnnoCls2 this) {return null;} 56 57 } 58 59 60 class TypeAnnoCls3 { 61 62 public String m(@TypeAnno1("TypeAnno1") @TypeAnno2("TypeAnno2") @TypeAnno3 TypeAnnoCls3 this) {return null;} 63 64 } 65 66 67 class TypeAnnoCls4 { 68 69 public String m(@TypeAnno2("TypeAnno2") @TypeAnno2("TypeAnno2") @TypeAnno2("TypeAnno2") TypeAnnoCls4 this) {return null;} 70 71 } 72 73 74 class TypeAnnoCls5 { 75 76 public String m(@TypeAnno3 @TypeAnno3 @TypeAnno3 TypeAnnoCls5 this) {return null;} 77 78 } 79 80 81 class TypeAnnoCls6 { 82 83 public String m(@TypeAnno3 TypeAnnoCls6 this) {return null;} 84 85 } 86 87