22 lines
		
	
	
		
			480 B
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			480 B
		
	
	
	
		
			Objective-C
		
	
	
	
| #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
 |