diff options
Diffstat (limited to 'test/SemaObjC/multiple-method-names-in-class-self.m')
-rw-r--r-- | test/SemaObjC/multiple-method-names-in-class-self.m | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/SemaObjC/multiple-method-names-in-class-self.m b/test/SemaObjC/multiple-method-names-in-class-self.m new file mode 100644 index 0000000000..47e1306d38 --- /dev/null +++ b/test/SemaObjC/multiple-method-names-in-class-self.m @@ -0,0 +1,39 @@ +// RUN: %clang_cc1 -Wobjc-multiple-method-names -x objective-c -verify %s +// RUN: %clang_cc1 -Wobjc-multiple-method-names -x objective-c -verify -fobjc-arc %s +// expected-no-diagnostics + +@interface NSObj + ++ (instancetype) alloc; + ++ (_Nonnull instancetype) globalObject; + +@end + +@interface SelfAllocReturn: NSObj + +- (instancetype)initWithFoo:(int)x; + +@end + +@interface SelfAllocReturn2: NSObj + +- (instancetype)initWithFoo:(SelfAllocReturn *)x; + +@end + +@implementation SelfAllocReturn + +- (instancetype)initWithFoo:(int)x { + return self; +} + ++ (instancetype) thingWithFoo:(int)x { + return [[self alloc] initWithFoo: x]; +} + ++ (void) initGlobal { + (void)[[self globalObject] initWithFoo: 20]; +} + +@end |