Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 -Wduplicate-method-match -fsyntax-only -verify %s
      2 
      3 @interface SUPER
      4 - (int) meth;
      5 + (int) foobar;
      6 @end
      7 
      8 @interface T @end
      9 
     10 @interface class1 : SUPER
     11 - (int) meth;	// expected-note {{previous declaration is here}}
     12 - (int*) meth;	// expected-error {{duplicate declaration of method 'meth'}}
     13 - (T*) meth1;   // expected-note {{previous declaration is here}}
     14 - (T*) meth1;   // expected-warning {{multiple declarations of method 'meth1' found and ignored}}
     15 + (T*) meth1;
     16 @end
     17 
     18 @interface class1(cat)
     19 - (int) catm : (char)ch1; // expected-note {{previous declaration is here}}
     20 - (int) catm1 : (char)ch : (int)i;
     21 - (int) catm : (char*)ch1; // expected-error {{duplicate declaration of method 'catm:'}}
     22 + (int) catm1 : (char)ch : (int)i;
     23 + (T*) meth1;
     24 @end
     25 
     26 @interface class1(cat1)
     27 + (int) catm1 : (char)ch : (int)i; // expected-note {{previous declaration is here}}
     28 + (T*) meth1; // expected-note {{previous declaration is here}}
     29 + (int) catm1 : (char)ch : (int*)i; // expected-error {{duplicate declaration of method 'catm1::'}}
     30 + (T**) meth1; // expected-error {{duplicate declaration of method 'meth1'}}
     31 + (int) foobar;
     32 @end
     33 
     34 @protocol P
     35 - (int) meth; // expected-note {{previous declaration is here}}
     36 - (int*) meth; // expected-error {{duplicate declaration of method 'meth'}}
     37 @end
     38 
     39