1 | // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s -Wselector -include %S/Inputs/chain-selectors1.h -include %S/Inputs/chain-selectors2.h |
2 | |
3 | // RUN: %clang_cc1 -x objective-c -Wno-objc-root-class -emit-pch -o %t1 %S/Inputs/chain-selectors1.h |
4 | // RUN: %clang_cc1 -x objective-c -Wno-objc-root-class -emit-pch -o %t2 %S/Inputs/chain-selectors2.h -include-pch %t1 |
5 | // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s -Wselector -include-pch %t2 |
6 | |
7 | @implementation X |
8 | -(void)f {} |
9 | -(void)f2 {} |
10 | -(void)g: (int)p {} |
11 | -(void)h: (int)p1 foo: (int)p2 {} |
12 | @end |
13 | |
14 | void bar() { |
15 | id a = 0; |
16 | [a nothing]; // expected-warning {{method '-nothing' not found}} |
17 | [a f]; |
18 | // FIXME: Can't verify notes in headers |
19 | //[a f2]; |
20 | |
21 | (void)@selector(x); // expected-warning {{no method with selector 'x' is implemented in this translation unit}} |
22 | (void)@selector(y); // expected-warning {{no method with selector 'y' is implemented in this translation unit}} |
23 | (void)@selector(e); // expected-warning {{no method with selector 'e' is implemented in this translation unit}} |
24 | } |
25 | |
26 | @implementation X (Blah) |
27 | - (void)test_Blah { |
28 | [self blah_method]; |
29 | } |
30 | |
31 | - (void)blah_method { } |
32 | @end |
33 | |
34 | @implementation X (Blarg) |
35 | - (void)test_Blarg { |
36 | [self blarg_method]; |
37 | } |
38 | |
39 | - (void)blarg_method { } |
40 | @end |
41 | |