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