xref: /aosp_15_r20/external/clang/test/Index/complete-constructor-params.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Note: the run lines follow their respective tests, since line/column
2*67e74705SXin Li // matter in this test.
3*67e74705SXin Li 
4*67e74705SXin Li template<class T>
5*67e74705SXin Li struct S {
6*67e74705SXin Li   template<class U>
SS7*67e74705SXin Li   S(T, U, U) {}
8*67e74705SXin Li };
9*67e74705SXin Li 
main()10*67e74705SXin Li int main() {
11*67e74705SXin Li   S<int>(42, 42, 42);
12*67e74705SXin Li   S<int>(42, 42, 42);
13*67e74705SXin Li   S<int> s(42, 42, 42);
14*67e74705SXin Li 
15*67e74705SXin Li   S<int>(42, 42, 42,);
16*67e74705SXin Li   S<int> z(42, 42, 42,);
17*67e74705SXin Li 
18*67e74705SXin Li   int(42);
19*67e74705SXin Li }
20*67e74705SXin Li 
21*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:11:10 %s | FileCheck -check-prefix=CHECK-CC1 %s
22*67e74705SXin Li // CHECK-CC1: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter const S<int> &}{RightParen )} (1)
23*67e74705SXin Li // CHECK-CC1: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{Comma , }{Placeholder U}{RightParen )} (1)
24*67e74705SXin Li // CHECK-CC1: Completion contexts:
25*67e74705SXin Li // CHECK-CC1-NEXT: Any type
26*67e74705SXin Li // CHECK-CC1-NEXT: Any value
27*67e74705SXin Li // CHECK-CC1-NEXT: Enum tag
28*67e74705SXin Li // CHECK-CC1-NEXT: Union tag
29*67e74705SXin Li // CHECK-CC1-NEXT: Struct tag
30*67e74705SXin Li // CHECK-CC1-NEXT: Class name
31*67e74705SXin Li // CHECK-CC1-NEXT: Nested name specifier
32*67e74705SXin Li // CHECK-CC1-NEXT: Objective-C interface
33*67e74705SXin Li 
34*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:12:10 %s | FileCheck -check-prefix=CHECK-CC2 %s
35*67e74705SXin Li // CHECK-CC2: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter const S<int> &}{RightParen )} (1)
36*67e74705SXin Li // CHECK-CC2: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{Comma , }{Placeholder U}{RightParen )} (1)
37*67e74705SXin Li // CHECK-CC2: Completion contexts:
38*67e74705SXin Li // CHECK-CC2-NEXT: Any type
39*67e74705SXin Li // CHECK-CC2-NEXT: Any value
40*67e74705SXin Li // CHECK-CC2-NEXT: Enum tag
41*67e74705SXin Li // CHECK-CC2-NEXT: Union tag
42*67e74705SXin Li // CHECK-CC2-NEXT: Struct tag
43*67e74705SXin Li // CHECK-CC2-NEXT: Class name
44*67e74705SXin Li // CHECK-CC2-NEXT: Nested name specifier
45*67e74705SXin Li // CHECK-CC2-NEXT: Objective-C interface
46*67e74705SXin Li 
47*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:12:13 %s | FileCheck -check-prefix=CHECK-CC3 %s
48*67e74705SXin Li // CHECK-CC3: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{Comma , }{Placeholder U}{RightParen )} (1)
49*67e74705SXin Li // CHECK-CC3: Completion contexts:
50*67e74705SXin Li // CHECK-CC3-NEXT: Any type
51*67e74705SXin Li // CHECK-CC3-NEXT: Any value
52*67e74705SXin Li // CHECK-CC3-NEXT: Enum tag
53*67e74705SXin Li // CHECK-CC3-NEXT: Union tag
54*67e74705SXin Li // CHECK-CC3-NEXT: Struct tag
55*67e74705SXin Li // CHECK-CC3-NEXT: Class name
56*67e74705SXin Li // CHECK-CC3-NEXT: Nested name specifier
57*67e74705SXin Li // CHECK-CC3-NEXT: Objective-C interface
58*67e74705SXin Li 
59*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:12:17 %s | FileCheck -check-prefix=CHECK-CC4 %s
60*67e74705SXin Li // CHECK-CC4: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
61*67e74705SXin Li // CHECK-CC4: Completion contexts:
62*67e74705SXin Li // CHECK-CC4-NEXT: Any type
63*67e74705SXin Li // CHECK-CC4-NEXT: Any value
64*67e74705SXin Li // CHECK-CC4-NEXT: Enum tag
65*67e74705SXin Li // CHECK-CC4-NEXT: Union tag
66*67e74705SXin Li // CHECK-CC4-NEXT: Struct tag
67*67e74705SXin Li // CHECK-CC4-NEXT: Class name
68*67e74705SXin Li // CHECK-CC4-NEXT: Nested name specifier
69*67e74705SXin Li // CHECK-CC4-NEXT: Objective-C interface
70*67e74705SXin Li 
71*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:13:12 %s | FileCheck -check-prefix=CHECK-CC5 %s
72*67e74705SXin Li // CHECK-CC5: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter const S<int> &}{RightParen )} (1)
73*67e74705SXin Li // CHECK-CC5: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{Comma , }{Placeholder U}{RightParen )} (1)
74*67e74705SXin Li // CHECK-CC5: Completion contexts:
75*67e74705SXin Li // CHECK-CC5-NEXT: Any type
76*67e74705SXin Li // CHECK-CC5-NEXT: Any value
77*67e74705SXin Li // CHECK-CC5-NEXT: Enum tag
78*67e74705SXin Li // CHECK-CC5-NEXT: Union tag
79*67e74705SXin Li // CHECK-CC5-NEXT: Struct tag
80*67e74705SXin Li // CHECK-CC5-NEXT: Class name
81*67e74705SXin Li // CHECK-CC5-NEXT: Nested name specifier
82*67e74705SXin Li // CHECK-CC5-NEXT: Objective-C interface
83*67e74705SXin Li 
84*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:13:15 %s | FileCheck -check-prefix=CHECK-CC6 %s
85*67e74705SXin Li // CHECK-CC6: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{Comma , }{Placeholder U}{RightParen )} (1)
86*67e74705SXin Li // CHECK-CC6: Completion contexts:
87*67e74705SXin Li // CHECK-CC6-NEXT: Any type
88*67e74705SXin Li // CHECK-CC6-NEXT: Any value
89*67e74705SXin Li // CHECK-CC6-NEXT: Enum tag
90*67e74705SXin Li // CHECK-CC6-NEXT: Union tag
91*67e74705SXin Li // CHECK-CC6-NEXT: Struct tag
92*67e74705SXin Li // CHECK-CC6-NEXT: Class name
93*67e74705SXin Li // CHECK-CC6-NEXT: Nested name specifier
94*67e74705SXin Li // CHECK-CC6-NEXT: Objective-C interface
95*67e74705SXin Li 
96*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:13:19 %s | FileCheck -check-prefix=CHECK-CC7 %s
97*67e74705SXin Li // CHECK-CC7: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
98*67e74705SXin Li // CHECK-CC7: Completion contexts:
99*67e74705SXin Li // CHECK-CC7-NEXT: Any type
100*67e74705SXin Li // CHECK-CC7-NEXT: Any value
101*67e74705SXin Li // CHECK-CC7-NEXT: Enum tag
102*67e74705SXin Li // CHECK-CC7-NEXT: Union tag
103*67e74705SXin Li // CHECK-CC7-NEXT: Struct tag
104*67e74705SXin Li // CHECK-CC7-NEXT: Class name
105*67e74705SXin Li // CHECK-CC7-NEXT: Nested name specifier
106*67e74705SXin Li // CHECK-CC7-NEXT: Objective-C interface
107*67e74705SXin Li 
108*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:15:21 %s | FileCheck -check-prefix=CHECK-CC8 %s
109*67e74705SXin Li // CHECK-CC8: Completion contexts:
110*67e74705SXin Li // CHECK-CC8-NEXT: Any type
111*67e74705SXin Li // CHECK-CC8-NEXT: Any value
112*67e74705SXin Li // CHECK-CC8-NEXT: Enum tag
113*67e74705SXin Li // CHECK-CC8-NEXT: Union tag
114*67e74705SXin Li // CHECK-CC8-NEXT: Struct tag
115*67e74705SXin Li // CHECK-CC8-NEXT: Class name
116*67e74705SXin Li // CHECK-CC8-NEXT: Nested name specifier
117*67e74705SXin Li // CHECK-CC8-NEXT: Objective-C interface
118*67e74705SXin Li 
119*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:16:23 %s | FileCheck -check-prefix=CHECK-CC9 %s
120*67e74705SXin Li // CHECK-CC9: Completion contexts:
121*67e74705SXin Li // CHECK-CC9-NEXT: Any type
122*67e74705SXin Li // CHECK-CC9-NEXT: Any value
123*67e74705SXin Li // CHECK-CC9-NEXT: Enum tag
124*67e74705SXin Li // CHECK-CC9-NEXT: Union tag
125*67e74705SXin Li // CHECK-CC9-NEXT: Struct tag
126*67e74705SXin Li // CHECK-CC9-NEXT: Class name
127*67e74705SXin Li // CHECK-CC9-NEXT: Nested name specifier
128*67e74705SXin Li // CHECK-CC9-NEXT: Objective-C interface
129*67e74705SXin Li 
130*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:18:7 %s | FileCheck -check-prefix=CHECK-CC10 %s
131*67e74705SXin Li // CHECK-CC10: FunctionDecl:{ResultType int}{TypedText main}{LeftParen (}{RightParen )} (12)
132*67e74705SXin Li // CHECK-CC10: Completion contexts:
133*67e74705SXin Li // CHECK-CC10-NEXT: Any type
134*67e74705SXin Li // CHECK-CC10-NEXT: Any value
135*67e74705SXin Li // CHECK-CC10-NEXT: Enum tag
136*67e74705SXin Li // CHECK-CC10-NEXT: Union tag
137*67e74705SXin Li // CHECK-CC10-NEXT: Struct tag
138*67e74705SXin Li // CHECK-CC10-NEXT: Class name
139*67e74705SXin Li // CHECK-CC10-NEXT: Nested name specifier
140*67e74705SXin Li // CHECK-CC10-NEXT: Objective-C interface
141