1 package annotator.tests; 2 3 import static java.lang.annotation.ElementType.TYPE_USE; 4 import java.lang.annotation.Target; 5 6 @Target({TYPE_USE}) @interface A {} 7 @Target({TYPE_USE}) @interface B {} 8 @Target({TYPE_USE}) @interface C {} 9 @Target({TYPE_USE}) @interface X {} 10 @Target({TYPE_USE}) @interface Y {} 11 12 class BoundZero<U> { 13 <T extends Object> void m1(T o) {} 14 <T extends @Y Object & Comparable<T>> void m2(T o) {} 15 <T extends @annotator.tests.Y Object & Comparable<T>> void m3(T o) {} 16 <T extends java.lang.Object & Comparable<T>> void m4(T o) {} 17 <T extends java.lang.@Y Object & Comparable<T>> void m5(T o) {} 18 <T extends java.lang.@annotator.tests.Y Object & Comparable<T>> void m6(T o) {} 19 <T extends Comparable<T>> void m7(T o) {} 20 <T extends @Y Comparable<T>> void m8(T o) {} 21 <T extends @annotator.tests.Y Comparable<T>> void m9(T o) {} 22 class Inner<@X V extends @Y Object> {} 23 } 24 25 class Outer<S extends java.io.Serializable> { 26 } 27 28