package annotator.tests; import static java.lang.annotation.ElementType.TYPE_USE; import java.lang.annotation.Target; @Target({TYPE_USE}) @interface A {} @Target({TYPE_USE}) @interface B {} @Target({TYPE_USE}) @interface C {} @Target({TYPE_USE}) @interface X {} @Target({TYPE_USE}) @interface Y {} class BoundZero<U> { <T extends Object> void m1(T o) {} <T extends @Y Object & Comparable<T>> void m2(T o) {} <T extends @annotator.tests.Y Object & Comparable<T>> void m3(T o) {} <T extends java.lang.Object & Comparable<T>> void m4(T o) {} <T extends java.lang.@Y Object & Comparable<T>> void m5(T o) {} <T extends java.lang.@annotator.tests.Y Object & Comparable<T>> void m6(T o) {} <T extends Comparable<T>> void m7(T o) {} <T extends @Y Comparable<T>> void m8(T o) {} <T extends @annotator.tests.Y Comparable<T>> void m9(T o) {} class Inner<@X V extends @Y Object> {} } class Outer<S extends java.io.Serializable> { }