2009-12-16 04:14:24 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
2007-10-04 08:22:33 +08:00
|
|
|
|
2007-09-28 02:57:03 +08:00
|
|
|
@interface INTF
|
|
|
|
- (void) meth;
|
|
|
|
- (void) meth : (int) arg1;
|
2010-03-28 03:02:17 +08:00
|
|
|
- (int) int_meth; // expected-note {{method definition for 'int_meth' not found}}
|
|
|
|
+ (int) cls_meth; // expected-note {{method definition for 'cls_meth' not found}}
|
|
|
|
+ (void) cls_meth1 : (int) arg1; // expected-note {{method definition for 'cls_meth1:' not found}}
|
2007-09-28 02:57:03 +08:00
|
|
|
@end
|
|
|
|
|
2010-03-28 03:02:17 +08:00
|
|
|
@implementation INTF // expected-warning {{incomplete implementation}}
|
2007-09-28 02:57:03 +08:00
|
|
|
- (void) meth {}
|
|
|
|
- (void) meth : (int) arg2{}
|
|
|
|
- (void) cls_meth1 : (int) arg2{}
|
2007-10-04 08:22:33 +08:00
|
|
|
@end
|
2007-09-28 02:57:03 +08:00
|
|
|
|
|
|
|
@interface INTF1
|
|
|
|
- (void) meth;
|
|
|
|
- (void) meth : (int) arg1;
|
2010-03-28 03:02:17 +08:00
|
|
|
- (int) int_meth; // expected-note {{method definition for 'int_meth' not found}}
|
|
|
|
+ (int) cls_meth; // expected-note {{method definition for 'cls_meth' not found}}
|
|
|
|
+ (void) cls_meth1 : (int) arg1; // expected-note {{method definition for 'cls_meth1:' not found}}
|
2007-09-28 02:57:03 +08:00
|
|
|
@end
|
|
|
|
|
2010-03-28 03:02:17 +08:00
|
|
|
@implementation INTF1 // expected-warning {{incomplete implementation}}
|
2007-09-28 02:57:03 +08:00
|
|
|
- (void) meth {}
|
|
|
|
- (void) meth : (int) arg2{}
|
|
|
|
- (void) cls_meth1 : (int) arg2{}
|
2007-10-04 08:22:33 +08:00
|
|
|
@end
|
2007-09-28 02:57:03 +08:00
|
|
|
|
|
|
|
@interface INTF2
|
|
|
|
- (void) meth;
|
|
|
|
- (void) meth : (int) arg1;
|
|
|
|
- (void) cls_meth1 : (int) arg1;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation INTF2
|
|
|
|
- (void) meth {}
|
|
|
|
- (void) meth : (int) arg2{}
|
|
|
|
- (void) cls_meth1 : (int) arg2{}
|
|
|
|
@end
|
|
|
|
|
2011-02-19 06:37:54 +08:00
|
|
|
|
|
|
|
// rdar://8850818
|
|
|
|
@interface Root @end
|
|
|
|
|
|
|
|
@interface Foo : Root @end
|
|
|
|
|
|
|
|
@implementation Foo
|
|
|
|
|
|
|
|
- (void)someFunction { return; }
|
|
|
|
|
|
|
|
+ (void)anotherFunction {
|
|
|
|
[self someFunction]; // expected-warning {{method '+someFunction' not found (return type defaults to 'id')}}
|
|
|
|
}
|
|
|
|
@end
|