Home | History | Annotate | Download | only in SemaObjC
      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