#pragma clang assume_nonnull begin
__attribute__((objc_root_class))
@interface B
@end
@interface C : B
@end
__attribute__((objc_root_class))
@interface NSGeneric<T : B *> // expected-note{{type parameter 'T' declared here}}
- (T)tee;
- (nullable T)maybeTee;
@end
typedef NSGeneric<C *> *Generic_with_C;
#pragma clang assume_nonnull end
@interface NSGeneric<T : C *>(Blah) // expected-error{{type bound 'C *' for type parameter 'T' conflicts with previous bound 'B *'}}
@end