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 16typedef 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