181f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// This test is line- and column-sensitive. See below for run lines.
281f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
381f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregorint global;
481f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
581f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregorstruct X {
681f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor  static int member;
781f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor  void f(int zed) {
881f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor    int local;
981f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor    static int local_static;
1081f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor    [=] {
1181f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor      int inner_local;
1281f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor      [local, this, inner_local] {
1381f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor      }
1481f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor    }();
1581f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor  }
1681f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor};
1781f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
1881f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
1981f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:12:8 -std=c++11 %s | FileCheck -check-prefix=CHECK-CC1 %s
2081f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC1: VarDecl:{ResultType int}{TypedText inner_local} (34)
2181f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC1-NEXT: VarDecl:{ResultType int}{TypedText local} (34)
2281f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC1-NEXT: NotImplemented:{ResultType X *}{TypedText this} (40)
2381f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC1-NEXT: ParmDecl:{ResultType int}{TypedText zed} (34)
2481f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
2581f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:12:15 -std=c++11 %s | FileCheck -check-prefix=CHECK-CC2 %s
2681f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC2: VarDecl:{ResultType int}{TypedText inner_local} (34)
2781f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC2-NEXT: NotImplemented:{ResultType X *}{TypedText this} (40)
2881f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC2-NEXT: ParmDecl:{ResultType int}{TypedText zed} (34)
2981f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
3081f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:12:21 -std=c++11 %s | FileCheck -check-prefix=CHECK-CC3 %s
3181f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC3: VarDecl:{ResultType int}{TypedText inner_local} (34)
3281f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC3-NEXT: ParmDecl:{ResultType int}{TypedText zed} (34)
3381f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
3481f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:12:8 -x objective-c++ -std=c++11 %s | FileCheck -check-prefix=CHECK-CC4 %s
3581f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC4: TypedefDecl:{TypedText Class} (50)
3681f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC4: TypedefDecl:{TypedText id} (50)
3781f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC4: VarDecl:{ResultType int}{TypedText inner_local} (34)
3881f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC4: VarDecl:{ResultType int}{TypedText local} (34)
3981f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC4: NotImplemented:{ResultType X *}{TypedText this} (40)
4081f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// CHECK-CC4: ParmDecl:{ResultType int}{TypedText zed} (34)
4181f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor
4281f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:12:15 -x objective-c++ -std=c++11 %s | FileCheck -check-prefix=CHECK-CC2 %s
4381f3bff7c202d688c9298bc049fdb5b6f77057b1Douglas Gregor// RUN: c-index-test -code-completion-at=%s:12:21 -x objective-c++ -std=c++11 %s | FileCheck -check-prefix=CHECK-CC3 %s
44