1// RUN: %clang_cc1 -fsyntax-only -verify %s 2 3@interface MyClass1 4@end 5 6@protocol P 7- (void) Pmeth; // expected-note {{method 'Pmeth' declared here}} 8- (void) Pmeth1; // expected-note {{method 'Pmeth1' declared here}} 9@end 10 11@interface MyClass1(CAT) <P> 12- (void) meth2; // expected-note {{method 'meth2' declared here}} 13@end 14 15@implementation MyClass1(CAT) // expected-warning {{method 'Pmeth' in protocol 'P' not implemented}} \ 16 // expected-warning {{method definition for 'meth2' not found}} 17- (void) Pmeth1{} 18@end 19 20@interface MyClass1(DOG) <P> 21- (void)ppp; // expected-note {{method 'ppp' declared here}} 22@end 23 24@implementation MyClass1(DOG) // expected-warning {{method 'Pmeth1' in protocol 'P' not implemented}} \ 25 // expected-warning {{method definition for 'ppp' not found}} 26- (void) Pmeth {} 27@end 28 29@implementation MyClass1(CAT1) 30@end 31 32// rdar://10823023 33@class NSString; 34 35@protocol NSObject 36- (NSString *)meth_inprotocol; 37@end 38 39@interface NSObject <NSObject> 40- (NSString *)description; 41+ (NSString *) cls_description; 42@end 43 44@protocol Foo 45- (NSString *)description; 46+ (NSString *) cls_description; 47@end 48 49@interface NSObject (FooConformance) <Foo> 50@end 51 52@implementation NSObject (FooConformance) 53@end 54 55// rdar://11186449 56// Don't warn when a category does not implemented a method imported 57// by its protocol because another category has its declaration and 58// that category will implement it. 59@interface NSOrderedSet @end 60 61@interface NSOrderedSet(CoolectionImplements) 62- (unsigned char)containsObject:(id)object; 63@end 64 65@protocol Collection 66- (unsigned char)containsObject:(id)object; 67@end 68 69@interface NSOrderedSet (CollectionConformance) <Collection> 70@end 71 72@implementation NSOrderedSet (CollectionConformance) 73@end 74 75