// RUN: clang -fsyntax-only -verify %s @interface A - (void) setMoo: (int) x; // expected-note {{previous definition is here}} - (int) setMoo1: (int) x; // expected-note {{previous definition is here}} - (int) setOk : (int) x : (double) d; @end @implementation A -(void) setMoo: (float) x {} // expected-warning {{conflicting types for 'setMoo:'}} - (char) setMoo1: (int) x {} // expected-warning {{conflicting types for 'setMoo1:'}} - (int) setOk : (int) x : (double) d {} @end @interface C + (void) cMoo: (int) x; // expected-note {{previous definition is here}} @end @implementation C +(float) cMoo: (float) x {} // expected-warning {{conflicting types for 'cMoo:'}} @end @interface A(CAT) - (void) setCat: (int) x; // expected-note {{previous definition is here}} + (void) cCat: (int) x; // expected-note {{previous definition is here}} @end @implementation A(CAT) -(float) setCat: (float) x {} // expected-warning {{conflicting types for 'setCat:'}} + (int) cCat: (int) x {} // expected-warning {{conflicting types for 'cCat:'}} @end