19f8b19e9SFariborz Jahanian// RUN: %clang_cc1  -fsyntax-only -verify %s
29f8b19e9SFariborz Jahanian// rdar://7020493
39f8b19e9SFariborz Jahanian
49f8b19e9SFariborz Jahanian@protocol P1
59f8b19e9SFariborz Jahanian@optional
69f8b19e9SFariborz Jahanian- (int) PMeth;
79f8b19e9SFariborz Jahanian@required
8*59b10db2STed Kremenek- (void) : (double) arg; // expected-note {{method ':' declared here}}
99f8b19e9SFariborz Jahanian@end
109f8b19e9SFariborz Jahanian
119f8b19e9SFariborz Jahanian@interface NSImage <P1>
12*59b10db2STed Kremenek- (void) initialize; // expected-note {{method 'initialize' declared here}}
139f8b19e9SFariborz Jahanian@end
149f8b19e9SFariborz Jahanian
159f8b19e9SFariborz Jahanian@interface NSImage (AirPortUI)
169f8b19e9SFariborz Jahanian- (void) initialize;
179f8b19e9SFariborz Jahanian@end
189f8b19e9SFariborz Jahanian
199f8b19e9SFariborz Jahanian@interface NSImage()
20*59b10db2STed Kremenek- (void) CEMeth; // expected-note {{method 'CEMeth' declared here}}
219f8b19e9SFariborz Jahanian@end
229f8b19e9SFariborz Jahanian
239f8b19e9SFariborz Jahanian@implementation NSImage (AirPortUI)
249f8b19e9SFariborz Jahanian- (void) initialize {NSImage *p=0; [p initialize]; } // expected-warning {{category is implementing a method which will also be implemented by its primary class}}
259f8b19e9SFariborz Jahanian- (int) PMeth{ return 0; }
269f8b19e9SFariborz Jahanian- (void) : (double) arg{}; // expected-warning {{category is implementing a method which will also be implemented by its primary class}}
279f8b19e9SFariborz Jahanian- (void) CEMeth {}; // expected-warning {{category is implementing a method which will also be implemented by its primary class}}
289f8b19e9SFariborz Jahanian@end
295cc730cdSFariborz Jahanian
305cc730cdSFariborz Jahanian// rdar://10014946
315cc730cdSFariborz Jahaniantypedef char BOOL;
325cc730cdSFariborz Jahanian@interface I
335cc730cdSFariborz Jahanian{
345cc730cdSFariborz Jahanian  BOOL allowsDeleting;
355cc730cdSFariborz Jahanian}
365cc730cdSFariborz Jahanian@property (nonatomic, assign, readwrite) BOOL allowsDeleting;
375cc730cdSFariborz Jahanian@end
385cc730cdSFariborz Jahanian
395cc730cdSFariborz Jahanian@implementation I(CAT)
405cc730cdSFariborz Jahanian- (BOOL) allowsDeleting { return 1; }
415cc730cdSFariborz Jahanian@end
42