1 namespace { 2 class MyCls { 3 void in_foo() { 4 vec.x = 0; 5 } 6 void out_foo(); 7 8 struct Vec { int x, y; }; 9 Vec vec; 10 }; 11 12 void MyCls::out_foo() { 13 vec.x = 0; 14 } 15 16 class OtherClass : public MyCls { 17 public: 18 OtherClass(const OtherClass &other) : MyCls(other), value(value) { } 19 20 private: 21 int value; 22 MyCls *object; 23 }; 24 25 template <typename T> 26 class X {}; 27 28 class Y : public X<int> { 29 Y() : X<int>() {} 30 }; 31 } 32 33 // RUN: c-index-test -code-completion-at=%s:4:9 -std=c++98 %s | FileCheck %s 34 // RUN: c-index-test -code-completion-at=%s:13:7 -std=c++98 %s | FileCheck %s 35 // CHECK: CXXMethod:{ResultType Vec &}{TypedText operator=}{LeftParen (}{Placeholder const Vec &}{RightParen )} (79) 36 // CHECK-NEXT: StructDecl:{TypedText Vec}{Text ::} (75) 37 // CHECK-NEXT: FieldDecl:{ResultType int}{TypedText x} (35) 38 // CHECK-NEXT: FieldDecl:{ResultType int}{TypedText y} (35) 39 // CHECK-NEXT: CXXDestructor:{ResultType void}{TypedText ~Vec}{LeftParen (}{RightParen )} (79) 40 // CHECK-NEXT: Completion contexts: 41 // CHECK-NEXT: Dot member access 42 // CHECK-NEXT: Container Kind: StructDecl 43 44 // RUN: c-index-test -code-completion-at=%s:18:41 %s | FileCheck -check-prefix=CHECK-CTOR-INIT %s 45 // CHECK-CTOR-INIT: ClassDecl:{TypedText MyCls}{LeftParen (}{Placeholder MyCls}{RightParen )} (7) 46 // CHECK-CTOR-INIT: MemberRef:{TypedText object}{LeftParen (}{Placeholder MyCls *}{RightParen )} (35) 47 // CHECK-CTOR-INIT: MemberRef:{TypedText value}{LeftParen (}{Placeholder int}{RightParen )} (35) 48 // RUN: c-index-test -code-completion-at=%s:18:55 %s | FileCheck -check-prefix=CHECK-CTOR-INIT-2 %s 49 // CHECK-CTOR-INIT-2-NOT: ClassDecl:{TypedText MyCls}{LeftParen (}{Placeholder MyCls}{RightParen )} (7) 50 // CHECK-CTOR-INIT-2: MemberRef:{TypedText object}{LeftParen (}{Placeholder MyCls *}{RightParen )} (35) 51 // CHECK-CTOR-INIT-2: MemberRef:{TypedText value}{LeftParen (}{Placeholder int}{RightParen )} (7) 52 // RUN: c-index-test -code-completion-at=%s:29:9 %s | FileCheck -check-prefix=CHECK-CTOR-INIT-3 %s 53 // CHECK-CTOR-INIT-3: ClassDecl:{TypedText X<int>}{LeftParen (}{Placeholder X<int>}{RightParen )} (7) 54