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     public  String f1;
  11     public @TypeAnno1("TypeAnno1")  String f2;
  12     public @TypeAnno1("TypeAnno1") @TypeAnno2("TypeAnno2") @TypeAnno3  String f3;
  13     public @TypeAnno2("TypeAnno2") @TypeAnno2("TypeAnno2") @TypeAnno2("TypeAnno2")  String f4;
  14     public @TypeAnno3 @TypeAnno3 @TypeAnno3  String f5;
  15     public @TypeAnno3  String f6;
  16 
  17 }
  18 
  19 @Target(ElementType.TYPE_USE)
  20 @Retention(RetentionPolicy.RUNTIME)
  21 @Repeatable(TypeAnno1Container.class)
  22 @interface TypeAnno1 {
  23     String value();
  24 }
  25 @Target(ElementType.TYPE_USE)
  26 @Retention(RetentionPolicy.RUNTIME)
  27 @Repeatable(TypeAnno2Container.class)
  28 @interface TypeAnno2 {
  29     String value();
  30 }
  31 @Target(ElementType.TYPE_USE)
  32 @Retention(RetentionPolicy.RUNTIME)
  33 @Repeatable(TypeAnno3Container.class)
  34 @interface TypeAnno3 {
  35 }
  36 @Target(ElementType.TYPE_USE)
  37 @Retention(RetentionPolicy.RUNTIME)
  38 @interface TypeAnno1Container {
  39     TypeAnno1[] value();
  40 }
  41 @Target(ElementType.TYPE_USE)
  42 @Retention(RetentionPolicy.RUNTIME)
  43 @interface TypeAnno2Container {
  44     TypeAnno2[] value();
  45 }
  46 @Target(ElementType.TYPE_USE)
  47 @Retention(RetentionPolicy.RUNTIME)
  48 @interface TypeAnno3Container {
  49     TypeAnno3[] value();
  50 }
  51