diff options
Diffstat (limited to 'test/SemaObjC/infer-availability-from-init.m')
-rw-r--r-- | test/SemaObjC/infer-availability-from-init.m | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/test/SemaObjC/infer-availability-from-init.m b/test/SemaObjC/infer-availability-from-init.m index f9996ec708..6719400a9f 100644 --- a/test/SemaObjC/infer-availability-from-init.m +++ b/test/SemaObjC/infer-availability-from-init.m @@ -47,12 +47,25 @@ void usenotmyobject() { } @interface FromSelf : NSObject --(instancetype)init __attribute__((unavailable)); // expected-note {{'init' has been explicitly marked unavailable here}} +-(instancetype)init __attribute__((unavailable)); +(FromSelf*)another_one; @end @implementation FromSelf +(FromSelf*)another_one { - [self new]; // expected-error{{'new' is unavailable}} + [self new]; +} +@end + +@interface NoInit : NSObject +-(instancetype)init __attribute__((unavailable)); // expected-note {{'init' has been explicitly marked unavailable here}} +@end + +@interface NoInitSub : NoInit @end + +@implementation NoInitSub +-(void)meth:(Class)c { + [c new]; // No error; unknown interface. + [NoInitSub new]; // expected-error {{'new' is unavailable}} } @end |