1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | |
3 | @protocol P |
4 | - (void) doSomethingInProtocol: (float) x; // expected-note {{previous definition is here}} |
5 | + (void) doSomethingClassyInProtocol: (float) x; // expected-note {{previous definition is here}} |
6 | - (void) doNothingInProtocol : (float) x; |
7 | + (void) doNothingClassyInProtocol : (float) x; |
8 | @end |
9 | |
10 | @interface I <P> |
11 | - (void) doSomething: (float) x; // expected-note {{previous definition is here}} |
12 | + (void) doSomethingClassy: (int) x; // expected-note {{previous definition is here}} |
13 | @end |
14 | |
15 | @interface Bar : I |
16 | @end |
17 | |
18 | @implementation Bar |
19 | - (void) doSomething: (int) x {} // expected-warning {{conflicting parameter types}} |
20 | + (void) doSomethingClassy: (float) x{} // expected-warning {{conflicting parameter types}} |
21 | - (void) doSomethingInProtocol: (id) x {} // expected-warning {{conflicting parameter types}} |
22 | + (void) doSomethingClassyInProtocol: (id) x {} // expected-warning {{conflicting parameter types}} |
23 | @end |
24 | |
25 | |
26 | |