1 // RUN: %clang_cc1 -fsyntax-only -Wmethod-signatures -verify -pedantic -Wno-objc-root-class %s 2 typedef signed char BOOL; 3 typedef int NSInteger; 4 5 @class NSString; 6 7 @protocol PBXCompletionItem 8 - (NSString *) name; 9 - (NSInteger)priority; 10 @end 11 12 extern NSInteger codeAssistantCaseCompareItems(id a, id b, void *context); 13 14 NSInteger codeAssistantCaseCompareItems(id<PBXCompletionItem> a, id<PBXCompletionItem> b, void *context) 15 { 16 return 0; 17 } 18 19 @interface TedWantsToVerifyObjCDoesTheRightThing 20 21 - compareThis:(int)a withThat:(id)b; // expected-note {{previous definition is here}} \ 22 // expected-note {{previous definition is here}} 23 24 @end 25 26 @implementation TedWantsToVerifyObjCDoesTheRightThing 27 28 - compareThis:(id<PBXCompletionItem>) 29 a // expected-warning {{conflicting parameter types in implementation of 'compareThis:withThat:': 'int' vs 'id<PBXCompletionItem>'}} 30 withThat:(id<PBXCompletionItem>)b { // expected-warning {{conflicting parameter types in implementation of 'compareThis:withThat:': 'id' vs 'id<PBXCompletionItem>'}} 31 return self; 32 } 33 34 @end 35