19283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor// This test is line- and column-sensitive, so test commands are at the bottom.
29283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregornamespace N {
39283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor  struct X {
49283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor    int f(X);
59283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor  };
69283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor}
79283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor
89283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregorint g(int a);
99283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor
109283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregorstruct Y { };
119283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor
129283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregorstruct Z {
139283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor  int member;
149283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor  friend int N::X::f(N::X);
159283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor};
169283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor
179283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor// RUN: c-index-test -code-completion-at=%s:8:5 %s | FileCheck -check-prefix=CHECK-CC1 %s
18a9b976bc0d468dc6183fae093193ccb992999e33Douglas Gregor// RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:8:5 %s | FileCheck -check-prefix=CHECK-CC1 %s
19503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC1: NotImplemented:{TypedText const} (40)
20c9ea513ccc6142913013ffb9a3f97c2914ce8cc6Douglas Gregor// CHECK-CC1: Namespace:{TypedText N}{Text ::} (75)
21503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC1: NotImplemented:{TypedText operator} (40)
22503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC1: NotImplemented:{TypedText volatile} (40)
239283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor// RUN: c-index-test -code-completion-at=%s:8:11 %s | FileCheck -check-prefix=CHECK-CC2 %s
24a9b976bc0d468dc6183fae093193ccb992999e33Douglas Gregor// RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:8:11 %s | FileCheck -check-prefix=CHECK-CC2 %s
25503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC2: NotImplemented:{TypedText const} (40)
26c9ea513ccc6142913013ffb9a3f97c2914ce8cc6Douglas Gregor// CHECK-CC2-NOT: Namespace:{TypedText N}{Text ::} (75)
27503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC2-NOT: NotImplemented:{TypedText operator} (40)
28503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC2: NotImplemented:{TypedText volatile} (40)
299283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor// RUN: c-index-test -code-completion-at=%s:13:7 %s | FileCheck -check-prefix=CHECK-CC3 %s
30a9b976bc0d468dc6183fae093193ccb992999e33Douglas Gregor// RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:13:7 %s | FileCheck -check-prefix=CHECK-CC3 %s
31503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC3: NotImplemented:{TypedText const} (40)
32c9ea513ccc6142913013ffb9a3f97c2914ce8cc6Douglas Gregor// CHECK-CC3-NOT: Namespace:{TypedText N}{Text ::} (75)
33503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC3: NotImplemented:{TypedText operator} (40)
34503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC3: NotImplemented:{TypedText volatile} (40)
359283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor// RUN: c-index-test -code-completion-at=%s:14:14 %s | FileCheck -check-prefix=CHECK-CC4 %s
36a9b976bc0d468dc6183fae093193ccb992999e33Douglas Gregor// RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:14:14 %s | FileCheck -check-prefix=CHECK-CC4 %s
37503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC4: NotImplemented:{TypedText const} (40)
38c9ea513ccc6142913013ffb9a3f97c2914ce8cc6Douglas Gregor// CHECK-CC4: Namespace:{TypedText N}{Text ::} (75)
39503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC4: NotImplemented:{TypedText operator} (40)
40503fd9a22ff1fa9467e05f023fe4085671ed3204Douglas Gregor// CHECK-CC4: NotImplemented:{TypedText volatile} (40)
41a9b976bc0d468dc6183fae093193ccb992999e33Douglas Gregor// CHECK-CC4: StructDecl:{TypedText Y}{Text ::} (75)
42a9b976bc0d468dc6183fae093193ccb992999e33Douglas Gregor// CHECK-CC4: StructDecl:{TypedText Z}{Text ::} (75)
439283ece07ecfa7c92c89fff2750ec0023344437fDouglas Gregor
44