2009-12-16 04:14:24 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
2009-03-03 03:05:07 +08:00
|
|
|
|
|
|
|
@interface Foo
|
2011-12-15 08:38:15 +08:00
|
|
|
- (int) garf; // expected-note {{previous declaration is here}}
|
2009-03-03 03:05:07 +08:00
|
|
|
- (int) OK;
|
2011-12-15 08:38:15 +08:00
|
|
|
+ (int) cgarf; // expected-note {{previous declaration is here}}
|
2009-03-03 03:05:07 +08:00
|
|
|
- (int) InstMeth;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface Foo()
|
|
|
|
- (void) garf; // expected-error {{duplicate declaration of method 'garf'}}
|
|
|
|
+ (void) cgarf; // expected-error {{duplicate declaration of method 'cgarf'}}
|
|
|
|
+ (int) InstMeth;
|
|
|
|
- (int) OK;
|
|
|
|
@end
|
2014-03-18 01:46:10 +08:00
|
|
|
|
|
|
|
// rdar://16312105
|
|
|
|
@class NSObject;
|
|
|
|
|
|
|
|
__attribute__((objc_root_class)) @interface AppDelegate
|
|
|
|
+ (void)someMethodWithArgument:(NSObject *)argument;
|
|
|
|
+ (void)someMethodWithArgument:(NSObject *)argument : (NSObject*) argument2; // expected-note {{previous declaration is here}}
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface AppDelegate ()
|
|
|
|
- (void)someMethodWithArgument:(float)argument; // OK. No warning to be issued here.
|
|
|
|
+ (void)someMethodWithArgument:(float)argument : (float)argument2; // expected-error {{duplicate declaration of method 'someMethodWithArgument::'}}
|
|
|
|
@end
|
2015-10-14 07:27:34 +08:00
|
|
|
|
|
|
|
__attribute__((objc_root_class))
|
|
|
|
@interface Test
|
|
|
|
-(void)meth; // expected-note {{declared here}}
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface Test()
|
|
|
|
-(void)meth;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation Test // expected-warning {{method definition for 'meth' not found}}
|
|
|
|
@end
|