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