aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjC/kindof.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjC/kindof.m')
-rw-r--r--test/SemaObjC/kindof.m10
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