1 #pragma clang assume_nonnull begin 2 3 __attribute__((objc_root_class)) 4 @interface B 5 @end 6 7 @interface C : B 8 @end 9 10 __attribute__((objc_root_class)) 11 @interface NSGeneric<T : B *> // expected-note{{type parameter 'T' declared here}} 12 - (T)tee; 13 - (nullable T)maybeTee; 14 @end 15 16 typedef NSGeneric<C *> *Generic_with_C; 17 18 #pragma clang assume_nonnull end 19 20 @interface NSGeneric<T : C *>(Blah) // expected-error{{type bound 'C *' for type parameter 'T' conflicts with previous bound 'B *'}} 21 @end 22