blob: 9701a2e5d5eea6a81c7c90ca49d7e44f86ca7e6a [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Chris Lattnercddc8882009-03-01 00:56:52 +00002
Fariborz Jahanian8822f7c2010-03-27 19:02:17 +00003@interface MyClass // expected-note {{required for direct or indirect protocol 'P'}}
Chris Lattnercddc8882009-03-01 00:56:52 +00004@end
5
6@protocol P
7- (void)Pmeth;
Fariborz Jahanian61c8d3e2010-10-29 23:20:05 +00008- (void)Pmeth1; // expected-note {{method declared here}}
Chris Lattnercddc8882009-03-01 00:56:52 +00009@end
10
11// Class extension
12@interface MyClass () <P>
Fariborz Jahanian8822f7c2010-03-27 19:02:17 +000013- (void)meth2; // expected-note {{method definition for 'meth2' not found}}
Chris Lattnercddc8882009-03-01 00:56:52 +000014@end
15
16// Add a category to test that clang does not emit warning for this method.
17@interface MyClass (Category)
18- (void)categoryMethod;
19@end
20
Fariborz Jahanian61c8d3e2010-10-29 23:20:05 +000021@implementation MyClass // expected-warning {{incomplete implementation}} \
Richard Trieu2fe9b7f2011-12-15 00:38:15 +000022 // expected-warning {{method in protocol not implemented}}
Chris Lattnercddc8882009-03-01 00:56:52 +000023- (void)Pmeth {}
24@end