125270b6e6a8416b7532cfe552b41794418ea19b1Douglas Gregornamespace { 27d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidisclass MyCls { 37d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis void in_foo() { 47d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis vec.x = 0; 57d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis } 67d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis void out_foo(); 77d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis 87d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis struct Vec { int x, y; }; 97d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis Vec vec; 107d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis}; 117d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis 127d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidisvoid MyCls::out_foo() { 137d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis vec.x = 0; 147d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis} 157d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis 163dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregorclass OtherClass : public MyCls { 173dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregorpublic: 183dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor OtherClass(const OtherClass &other) : MyCls(other), value(value) { } 193dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor 203dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregorprivate: 213dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor int value; 223dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor MyCls *object; 233dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor}; 2425270b6e6a8416b7532cfe552b41794418ea19b1Douglas Gregor} 253dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor 2650f88b99c60c2ed31b339cd8bd484766cc9e916bNico Weber// RUN: c-index-test -code-completion-at=%s:4:9 -std=c++98 %s | FileCheck %s 2750f88b99c60c2ed31b339cd8bd484766cc9e916bNico Weber// RUN: c-index-test -code-completion-at=%s:13:7 -std=c++98 %s | FileCheck %s 287d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK: CXXMethod:{ResultType MyCls::Vec &}{TypedText operator=}{LeftParen (}{Placeholder const MyCls::Vec &}{RightParen )} (34) 297d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK-NEXT: StructDecl:{TypedText Vec}{Text ::} (75) 307d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK-NEXT: FieldDecl:{ResultType int}{TypedText x} (35) 317d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK-NEXT: FieldDecl:{ResultType int}{TypedText y} (35) 327d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK-NEXT: CXXDestructor:{ResultType void}{TypedText ~Vec}{LeftParen (}{RightParen )} (34) 337d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK-NEXT: Completion contexts: 347d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK-NEXT: Dot member access 357d100872341f233c81e1d7b72b40457e62c36862Argyrios Kyrtzidis// CHECK-NEXT: Container Kind: StructDecl 363dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor 3725270b6e6a8416b7532cfe552b41794418ea19b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:18:41 %s | FileCheck -check-prefix=CHECK-CTOR-INIT %s 383dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor// CHECK-CTOR-INIT: NotImplemented:{TypedText MyCls}{LeftParen (}{Placeholder args}{RightParen )} (7) 393dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor// CHECK-CTOR-INIT: MemberRef:{TypedText object}{LeftParen (}{Placeholder args}{RightParen )} (35) 403dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor// CHECK-CTOR-INIT: MemberRef:{TypedText value}{LeftParen (}{Placeholder args}{RightParen )} (35) 4125270b6e6a8416b7532cfe552b41794418ea19b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:18:55 %s | FileCheck -check-prefix=CHECK-CTOR-INIT-2 %s 423dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor// CHECK-CTOR-INIT-2-NOT: NotImplemented:{TypedText MyCls}{LeftParen (}{Placeholder args}{RightParen )} 433dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor// CHECK-CTOR-INIT-2: MemberRef:{TypedText object}{LeftParen (}{Placeholder args}{RightParen )} (35) 443dd0f76fd71593a18525ce22bd60485015a23fb2Douglas Gregor// CHECK-CTOR-INIT-2: MemberRef:{TypedText value}{LeftParen (}{Placeholder args}{RightParen )} (7) 45