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