Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
      2 
      3 @interface INTF
      4 - (void) meth;
      5 - (void) meth : (int) arg1;
      6 - (int)  int_meth;  // expected-note {{method definition for 'int_meth' not found}}
      7 + (int) cls_meth;  // expected-note {{method definition for 'cls_meth' not found}}
      8 + (void) cls_meth1 : (int) arg1;  // expected-note {{method definition for 'cls_meth1:' not found}}
      9 @end
     10 
     11 @implementation INTF 	// expected-warning {{incomplete implementation}}
     12 - (void) meth {}
     13 - (void) meth : (int) arg2{}
     14 - (void) cls_meth1 : (int) arg2{}
     15 @end
     16 
     17 @interface INTF1
     18 - (void) meth;
     19 - (void) meth : (int) arg1;
     20 - (int)  int_meth;       // expected-note {{method definition for 'int_meth' not found}}
     21 + (int) cls_meth;        // expected-note {{method definition for 'cls_meth' not found}}
     22 + (void) cls_meth1 : (int) arg1;  // expected-note {{method definition for 'cls_meth1:' not found}}
     23 @end
     24 
     25 @implementation INTF1 // expected-warning {{incomplete implementation}}
     26 - (void) meth {}
     27 - (void) meth : (int) arg2{}
     28 - (void) cls_meth1 : (int) arg2{}
     29 @end
     30 
     31 @interface INTF2
     32 - (void) meth;
     33 - (void) meth : (int) arg1;
     34 - (void) cls_meth1 : (int) arg1; 
     35 @end
     36 
     37 @implementation INTF2
     38 - (void) meth {}
     39 - (void) meth : (int) arg2{}
     40 - (void) cls_meth1 : (int) arg2{}
     41 @end
     42 
     43 
     44 // rdar://8850818
     45 @interface Root @end
     46 
     47 @interface Foo : Root @end
     48 
     49 @implementation Foo
     50 
     51 - (void)someFunction { return; }
     52 
     53 + (void)anotherFunction {
     54     [self someFunction]; // expected-warning {{method '+someFunction' not found (return type defaults to 'id')}}
     55 }
     56 @end
     57