158 lines · cpp
1// Note: the run lines follow their respective tests, since line/column2// matter in this test.3 4template<class T>5struct S {6 template<class U>7 S(T, U, U) {}8};9 10int main() {11 S<int>(42, 42, 42);12 S<int>(42, 42, 42);13 S<int> s(42, 42, 42);14 15 S<int>(42, 42, 42,);16 S<int> z(42, 42, 42,);17 18 int(42);19}20 21struct Foo {22 Foo() = default;23 Foo(const Foo&) = delete;24};25 26struct Bar {27 Foo f;28};29 30void function() {31 Bar b1;32 Bar b2(b1);33}34 35// RUN: c-index-test -code-completion-at=%s:11:10 %s | FileCheck -check-prefix=CHECK-CC1 %s36// CHECK-CC1: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter const S<int> &}{RightParen )} (1)37// CHECK-CC1: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{Comma , }{Placeholder U}{RightParen )} (1)38// CHECK-CC1: Completion contexts:39// CHECK-CC1-NEXT: Any type40// CHECK-CC1-NEXT: Any value41// CHECK-CC1-NEXT: Enum tag42// CHECK-CC1-NEXT: Union tag43// CHECK-CC1-NEXT: Struct tag44// CHECK-CC1-NEXT: Class name45// CHECK-CC1-NEXT: Nested name specifier46// CHECK-CC1-NEXT: Objective-C interface47 48// RUN: c-index-test -code-completion-at=%s:12:10 %s | FileCheck -check-prefix=CHECK-CC2 %s49// CHECK-CC2: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter const S<int> &}{RightParen )} (1)50// CHECK-CC2: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{Comma , }{Placeholder U}{RightParen )} (1)51// CHECK-CC2: Completion contexts:52// CHECK-CC2-NEXT: Any type53// CHECK-CC2-NEXT: Any value54// CHECK-CC2-NEXT: Enum tag55// CHECK-CC2-NEXT: Union tag56// CHECK-CC2-NEXT: Struct tag57// CHECK-CC2-NEXT: Class name58// CHECK-CC2-NEXT: Nested name specifier59// CHECK-CC2-NEXT: Objective-C interface60 61// RUN: c-index-test -code-completion-at=%s:12:13 %s | FileCheck -check-prefix=CHECK-CC3 %s62// CHECK-CC3: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{Comma , }{Placeholder U}{RightParen )} (1)63// CHECK-CC3: Completion contexts:64// CHECK-CC3-NEXT: Any type65// CHECK-CC3-NEXT: Any value66// CHECK-CC3-NEXT: Enum tag67// CHECK-CC3-NEXT: Union tag68// CHECK-CC3-NEXT: Struct tag69// CHECK-CC3-NEXT: Class name70// CHECK-CC3-NEXT: Nested name specifier71// CHECK-CC3-NEXT: Objective-C interface72 73// RUN: c-index-test -code-completion-at=%s:12:17 %s | FileCheck -check-prefix=CHECK-CC4 %s74// CHECK-CC4: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)75// CHECK-CC4: Completion contexts:76// CHECK-CC4-NEXT: Any type77// CHECK-CC4-NEXT: Any value78// CHECK-CC4-NEXT: Enum tag79// CHECK-CC4-NEXT: Union tag80// CHECK-CC4-NEXT: Struct tag81// CHECK-CC4-NEXT: Class name82// CHECK-CC4-NEXT: Nested name specifier83// CHECK-CC4-NEXT: Objective-C interface84 85// RUN: c-index-test -code-completion-at=%s:13:12 %s | FileCheck -check-prefix=CHECK-CC5 %s86// CHECK-CC5: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter const S<int> &}{RightParen )} (1)87// CHECK-CC5: OverloadCandidate:{Text S}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{Comma , }{Placeholder U}{RightParen )} (1)88// CHECK-CC5: Completion contexts:89// CHECK-CC5-NEXT: Any type90// CHECK-CC5-NEXT: Any value91// CHECK-CC5-NEXT: Enum tag92// CHECK-CC5-NEXT: Union tag93// CHECK-CC5-NEXT: Struct tag94// CHECK-CC5-NEXT: Class name95// CHECK-CC5-NEXT: Nested name specifier96// CHECK-CC5-NEXT: Objective-C interface97 98// RUN: c-index-test -code-completion-at=%s:13:15 %s | FileCheck -check-prefix=CHECK-CC6 %s99// CHECK-CC6: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{Comma , }{Placeholder U}{RightParen )} (1)100// CHECK-CC6: Completion contexts:101// CHECK-CC6-NEXT: Any type102// CHECK-CC6-NEXT: Any value103// CHECK-CC6-NEXT: Enum tag104// CHECK-CC6-NEXT: Union tag105// CHECK-CC6-NEXT: Struct tag106// CHECK-CC6-NEXT: Class name107// CHECK-CC6-NEXT: Nested name specifier108// CHECK-CC6-NEXT: Objective-C interface109 110// RUN: c-index-test -code-completion-at=%s:13:19 %s | FileCheck -check-prefix=CHECK-CC7 %s111// CHECK-CC7: OverloadCandidate:{Text S}{LeftParen (}{Placeholder int}{Comma , }{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)112// CHECK-CC7: Completion contexts:113// CHECK-CC7-NEXT: Any type114// CHECK-CC7-NEXT: Any value115// CHECK-CC7-NEXT: Enum tag116// CHECK-CC7-NEXT: Union tag117// CHECK-CC7-NEXT: Struct tag118// CHECK-CC7-NEXT: Class name119// CHECK-CC7-NEXT: Nested name specifier120// CHECK-CC7-NEXT: Objective-C interface121 122// RUN: c-index-test -code-completion-at=%s:15:21 %s | FileCheck -check-prefix=CHECK-CC8 %s123// CHECK-CC8: Completion contexts:124// CHECK-CC8-NEXT: Any type125// CHECK-CC8-NEXT: Any value126// CHECK-CC8-NEXT: Enum tag127// CHECK-CC8-NEXT: Union tag128// CHECK-CC8-NEXT: Struct tag129// CHECK-CC8-NEXT: Class name130// CHECK-CC8-NEXT: Nested name specifier131// CHECK-CC8-NEXT: Objective-C interface132 133// RUN: c-index-test -code-completion-at=%s:16:23 %s | FileCheck -check-prefix=CHECK-CC9 %s134// CHECK-CC9: Completion contexts:135// CHECK-CC9-NEXT: Any type136// CHECK-CC9-NEXT: Any value137// CHECK-CC9-NEXT: Enum tag138// CHECK-CC9-NEXT: Union tag139// CHECK-CC9-NEXT: Struct tag140// CHECK-CC9-NEXT: Class name141// CHECK-CC9-NEXT: Nested name specifier142// CHECK-CC9-NEXT: Objective-C interface143 144// RUN: c-index-test -code-completion-at=%s:18:7 %s | FileCheck -check-prefix=CHECK-CC10 %s145// CHECK-CC10: FunctionDecl:{ResultType int}{TypedText main}{LeftParen (}{RightParen )} (12)146// CHECK-CC10: Completion contexts:147// CHECK-CC10-NEXT: Any type148// CHECK-CC10-NEXT: Any value149// CHECK-CC10-NEXT: Enum tag150// CHECK-CC10-NEXT: Union tag151// CHECK-CC10-NEXT: Struct tag152// CHECK-CC10-NEXT: Class name153// CHECK-CC10-NEXT: Nested name specifier154// CHECK-CC10-NEXT: Objective-C interface155 156// RUN: c-index-test -code-completion-at=%s:32:12 -std=c++11 %s | FileCheck -check-prefix=CHECK-CC11 %s157// CHECK-CC11-NOT: OverloadCandidate:{Text Bar}{LeftParen (}{CurrentParameter const Bar &}{RightParen )} (1)158