diff options
Diffstat (limited to 'test/SemaObjC/kindof.m')
-rw-r--r-- | test/SemaObjC/kindof.m | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/test/SemaObjC/kindof.m b/test/SemaObjC/kindof.m index 63ba18fe89bc..9d758d3cfb2a 100644 --- a/test/SemaObjC/kindof.m +++ b/test/SemaObjC/kindof.m @@ -385,7 +385,7 @@ void testNullability() { @end @interface NSGeneric<ObjectType> : NSObject -- (void)test:(__kindof ObjectType)T; +- (void)test:(__kindof ObjectType)T; // expected-note{{passing argument to parameter 'T' here}} - (void)mapUsingBlock:(id (^)(__kindof ObjectType))block; @end @implementation NSGeneric @@ -395,6 +395,14 @@ void testNullability() { } @end +void testGeneric(NSGeneric<NSString*> *generic) { + NSObject *NSObject_obj; + // Assign from NSObject_obj to __kindof NSString*. + [generic test:NSObject_obj]; // expected-warning{{incompatible pointer types sending 'NSObject *' to parameter of type '__kindof NSString *'}} + NSString *NSString_str; + [generic test:NSString_str]; +} + // Check that clang doesn't crash when a type parameter is illegal. @interface Array1<T> : NSObject @end |