1 | @interface Foo |
2 | - (void) test; |
3 | - (void) test2; |
4 | @end |
5 | |
6 | @implementation Foo |
7 | - (void) test { |
8 | [_self test2]; |
9 | } |
10 | - (void) test2 {} |
11 | @end |
12 | |
13 | // RUN: rm -f %t |
14 | // RUN: not %clang -Wall -fsyntax-only %s --serialize-diagnostics %t.diag > /dev/null 2>&1 |
15 | // RUN: c-index-test -read-diagnostics %t.diag > %t 2>&1 |
16 | // RUN: FileCheck --input-file=%t %s |
17 | |
18 | // This test checks that serialized diagnostics handle notes with no source location. |
19 | |
20 | // CHECK: {{.*[/\\]}}serialized-diags.m:8:4: error: use of undeclared identifier '_self'; did you mean 'self'? [] [Semantic Issue] |
21 | // CHECK: Range: {{.*[/\\]}}serialized-diags.m:8:4 {{.*[/\\]}}serialized-diags.m:8:9 |
22 | // CHECK: Number FIXITs = 1 |
23 | // CHECK: FIXIT: ({{.*[/\\]}}serialized-diags.m:8:4 - {{.*[/\\]}}serialized-diags.m:8:9): "self" |
24 | // CHECK: +-(null):0:0: note: 'self' is an implicit parameter [] [Semantic Issue] |
25 | // CHECK: Number FIXITs = 0 |
26 | // CHECK: {{.*[/\\]}}serialized-diags.m:1:12: warning: class 'Foo' defined without specifying a base class [-Wobjc-root-class] [Semantic Issue] |
27 | // CHECK: Number FIXITs = 0 |
28 | // CHECK: +-{{.*[/\\]}}serialized-diags.m:1:15: note: add a super class to fix this problem [] [Semantic Issue] |
29 | // CHECK: Number FIXITs = 0 |
30 | // CHECK: Number of diagnostics: 2 |
31 | |