Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 -Wmethod-signatures -fsyntax-only -verify %s
      2 
      3 @class B;
      4 @interface A
      5 - (B*)obj;
      6 - (B*)a; // expected-note {{previous definition is here}}
      7 - (void)takesA: (A*)a; // expected-note {{previous definition is here}}
      8 - (void)takesId: (id)a; // expected-note {{previous definition is here}}
      9 @end
     10 
     11 
     12 @interface B : A
     13 @end
     14 
     15 @implementation B
     16 - (id)obj {return self;} // 'id' overrides are white-listed?
     17 - (A*)a { return self;}  // expected-warning {{conflicting return type in implementation of 'a'}}
     18 - (void)takesA: (B*)a  // expected-warning {{conflicting parameter types in implementation of 'takesA:'}}
     19 {}
     20 - (void)takesId: (B*)a // expected-warning {{conflicting parameter types in implementation of 'takesId:'}}
     21 {}
     22 @end
     23