blob: 9ad3593c6c4d03cdb8797108d3eba4b95862e32f [file] [log] [blame]
Fariborz Jahanian4b6df3f2007-10-04 00:22:33 +00001// RUN: clang -fsyntax-only -verify %s
2
Fariborz Jahanian00ae8d52007-09-28 17:40:07 +00003@protocol P1
Steve Naroffefe7f362008-02-08 22:06:17 +00004- (void) P1proto;
5+ (void) ClsP1Proto;
Fariborz Jahanian00ae8d52007-09-28 17:40:07 +00006- (void) DefP1proto;
7@end
8@protocol P2
Steve Naroffefe7f362008-02-08 22:06:17 +00009- (void) P2proto;
10+ (void) ClsP2Proto;
Fariborz Jahanian00ae8d52007-09-28 17:40:07 +000011@end
12
13@protocol P3<P2>
Steve Naroffefe7f362008-02-08 22:06:17 +000014- (void) P3proto;
15+ (void) ClsP3Proto;
Fariborz Jahanian00ae8d52007-09-28 17:40:07 +000016+ (void) DefClsP3Proto;
17@end
18
19@protocol PROTO<P1, P3>
Steve Naroffefe7f362008-02-08 22:06:17 +000020- (void) meth;
21- (void) meth : (int) arg1;
22+ (void) cls_meth : (int) arg1;
Fariborz Jahanian00ae8d52007-09-28 17:40:07 +000023@end
24
25@interface INTF <PROTO>
26@end
27
Steve Naroffefe7f362008-02-08 22:06:17 +000028@implementation INTF // expected-warning {{incomplete implementation}} \
29 expected-warning {{method definition for 'meth' not found}} \
30 expected-warning {{method definition for 'meth:' not found}} \
31 expected-warning {{method definition for 'cls_meth:' not found}} \
32 expected-warning {{method definition for 'P3proto' not found}} \
33 expected-warning {{method definition for 'ClsP3Proto' not found}} \
34 expected-warning {{method definition for 'P2proto' not found}} \
35 expected-warning {{method definition for 'ClsP2Proto' not found}} \
36 expected-warning {{method definition for 'ClsP1Proto' not found}} \
37 expected-warning {{method definition for 'P1proto' not found}}
Fariborz Jahanian00ae8d52007-09-28 17:40:07 +000038- (void) DefP1proto{}
39
40+ (void) DefClsP3Proto{}
41
Fariborz Jahanian4b6df3f2007-10-04 00:22:33 +000042@end