1 | // Note: the run lines follow their respective tests, since line/column |
2 | // matter in this test. |
3 | void f(float x, float y); |
4 | void f(int i, int j, int k); |
5 | struct X { }; |
6 | void f(X); |
7 | namespace N { |
8 | struct Y { |
9 | Y(int = 0); |
10 | |
11 | operator int() const; |
12 | }; |
13 | void f(Y y, int ZZ); |
14 | } |
15 | typedef N::Y Y; |
16 | void f(); |
17 | |
18 | void test() { |
19 | f(Y(), 0, 0); |
20 | // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:19:9 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s |
21 | // CHECK-CC1: f(Y y, <#int ZZ#>) |
22 | // CHECK-CC1-NEXT: f(int i, <#int j#>, int k) |
23 | // CHECK-CC1-NEXT: f(float x, <#float y#>) |
24 | // CHECK-CC1: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>) |
25 | // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:19:13 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s |
26 | // CHECK-CC2-NOT: f(Y y, int ZZ) |
27 | // CHECK-CC2: f(int i, int j, <#int k#>) |
28 | } |
29 | |