blob: 6871ff06fc514777e9de9b0e5ebd22cc00beeaf6 [file] [log] [blame]
Daniel Dunbar8fbe78f2009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Fariborz Jahanianc9cd8a12007-10-04 00:22:33 +00002
Fariborz Jahanianb75db4c2007-09-28 17:40:07 +00003@protocol P1
Fariborz Jahanian97752f72010-03-27 19:02:17 +00004- (void) P1proto; // expected-note {{method definition for 'P1proto' not found}}
5+ (void) ClsP1Proto; // expected-note {{method definition for 'ClsP1Proto' not found}}
Fariborz Jahanianb75db4c2007-09-28 17:40:07 +00006- (void) DefP1proto;
7@end
8@protocol P2
Fariborz Jahanian97752f72010-03-27 19:02:17 +00009- (void) P2proto; // expected-note {{method definition for 'P2proto' not found}}
10+ (void) ClsP2Proto; // expected-note {{method definition for 'ClsP2Proto' not found}}
Fariborz Jahanianb75db4c2007-09-28 17:40:07 +000011@end
12
13@protocol P3<P2>
Fariborz Jahanian97752f72010-03-27 19:02:17 +000014- (void) P3proto; // expected-note {{method definition for 'P3proto' not found}}
15+ (void) ClsP3Proto; // expected-note {{method definition for 'ClsP3Proto' not found}}
Fariborz Jahanianb75db4c2007-09-28 17:40:07 +000016+ (void) DefClsP3Proto;
17@end
18
19@protocol PROTO<P1, P3>
Fariborz Jahanian97752f72010-03-27 19:02:17 +000020- (void) meth; // expected-note {{method definition for 'meth' not found}}
21- (void) meth : (int) arg1; // expected-note {{method definition for 'meth:' not found}}
22+ (void) cls_meth : (int) arg1; // expected-note {{method definition for 'cls_meth:' not found}}
Fariborz Jahanianb75db4c2007-09-28 17:40:07 +000023@end
24
Fariborz Jahanian97752f72010-03-27 19:02:17 +000025@interface INTF <PROTO> // expected-note 3 {{required for direct or indirect protocol 'PROTO'}} \
26 // expected-note 2 {{required for direct or indirect protocol 'P1'}} \
27 // expected-note 2 {{required for direct or indirect protocol 'P3'}} \
28 // expected-note 2 {{required for direct or indirect protocol 'P2'}}
Fariborz Jahanianb75db4c2007-09-28 17:40:07 +000029@end
30
Fariborz Jahanian97752f72010-03-27 19:02:17 +000031@implementation INTF // expected-warning {{incomplete implementation}}
Fariborz Jahanianb75db4c2007-09-28 17:40:07 +000032- (void) DefP1proto{}
33
34+ (void) DefClsP3Proto{}
35
Fariborz Jahanianc9cd8a12007-10-04 00:22:33 +000036@end