| // RUN: %clang_cc1 -Wduplicate-method-match -fsyntax-only -verify %s |
| |
| @interface SUPER |
| - (int) meth; |
| + (int) foobar; |
| @end |
| |
| @interface T @end |
| |
| @interface class1 : SUPER |
| - (int) meth; // expected-note {{previous declaration is here}} |
| - (int*) meth; // expected-error {{duplicate declaration of method 'meth'}} |
| - (T*) meth1; // expected-note {{previous declaration is here}} |
| - (T*) meth1; // expected-warning {{multiple declarations of method 'meth1' found and ignored}} |
| + (T*) meth1; |
| @end |
| |
| @interface class1(cat) |
| - (int) catm : (char)ch1; // expected-note {{previous declaration is here}} |
| - (int) catm1 : (char)ch : (int)i; |
| - (int) catm : (char*)ch1; // expected-error {{duplicate declaration of method 'catm:'}} |
| + (int) catm1 : (char)ch : (int)i; |
| + (T*) meth1; |
| @end |
| |
| @interface class1(cat1) |
| + (int) catm1 : (char)ch : (int)i; // expected-note {{previous declaration is here}} |
| + (T*) meth1; // expected-note {{previous declaration is here}} |
| + (int) catm1 : (char)ch : (int*)i; // expected-error {{duplicate declaration of method 'catm1::'}} |
| + (T**) meth1; // expected-error {{duplicate declaration of method 'meth1'}} |
| + (int) foobar; |
| @end |
| |
| @protocol P |
| - (int) meth; // expected-note {{previous declaration is here}} |
| - (int*) meth; // expected-error {{duplicate declaration of method 'meth'}} |
| @end |
| |