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