// RUN: %clang_cc1 -fsyntax-only -Wmethod-signatures -verify -pedantic -Wno-objc-root-class %s typedef signed char BOOL; typedef int NSInteger; @class NSString; @protocol PBXCompletionItem - (NSString *) name; - (NSInteger)priority; @end extern NSInteger codeAssistantCaseCompareItems(id a, id b, void *context); NSInteger codeAssistantCaseCompareItems(id<PBXCompletionItem> a, id<PBXCompletionItem> b, void *context) { return 0; } @interface TedWantsToVerifyObjCDoesTheRightThing - compareThis:(int)a withThat:(id)b; // expected-note {{previous definition is here}} \ // expected-note {{previous definition is here}} @end @implementation TedWantsToVerifyObjCDoesTheRightThing - compareThis:(id<PBXCompletionItem>) a // expected-warning {{conflicting parameter types in implementation of 'compareThis:withThat:': 'int' vs 'id<PBXCompletionItem>'}} withThat:(id<PBXCompletionItem>)b { // expected-warning {{conflicting parameter types in implementation of 'compareThis:withThat:': 'id' vs 'id<PBXCompletionItem>'}} return self; } @end