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