1// This test is line- and column-sensitive. See below for run lines.
2
3int global;
4
5struct X {
6  static int member;
7  void f(int zed) {
8    int local;
9    static int local_static;
10    [=] {
11      int inner_local;
12      [local, this, inner_local] {
13      }
14    }();
15  }
16};
17
18
19// RUN: c-index-test -code-completion-at=%s:12:8 -std=c++11 %s | FileCheck -check-prefix=CHECK-CC1 %s
20// CHECK-CC1: VarDecl:{ResultType int}{TypedText inner_local} (34)
21// CHECK-CC1-NEXT: VarDecl:{ResultType int}{TypedText local} (34)
22// CHECK-CC1-NEXT: NotImplemented:{ResultType X *}{TypedText this} (40)
23// CHECK-CC1-NEXT: ParmDecl:{ResultType int}{TypedText zed} (34)
24
25// RUN: c-index-test -code-completion-at=%s:12:15 -std=c++11 %s | FileCheck -check-prefix=CHECK-CC2 %s
26// CHECK-CC2: VarDecl:{ResultType int}{TypedText inner_local} (34)
27// CHECK-CC2-NEXT: NotImplemented:{ResultType X *}{TypedText this} (40)
28// CHECK-CC2-NEXT: ParmDecl:{ResultType int}{TypedText zed} (34)
29
30// RUN: c-index-test -code-completion-at=%s:12:21 -std=c++11 %s | FileCheck -check-prefix=CHECK-CC3 %s
31// CHECK-CC3: VarDecl:{ResultType int}{TypedText inner_local} (34)
32// CHECK-CC3-NEXT: ParmDecl:{ResultType int}{TypedText zed} (34)
33
34// RUN: c-index-test -code-completion-at=%s:12:8 -x objective-c++ -std=c++11 %s | FileCheck -check-prefix=CHECK-CC4 %s
35// CHECK-CC4: TypedefDecl:{TypedText Class} (50)
36// CHECK-CC4: TypedefDecl:{TypedText id} (50)
37// CHECK-CC4: VarDecl:{ResultType int}{TypedText inner_local} (34)
38// CHECK-CC4: VarDecl:{ResultType int}{TypedText local} (34)
39// CHECK-CC4: NotImplemented:{ResultType X *}{TypedText this} (40)
40// CHECK-CC4: ParmDecl:{ResultType int}{TypedText zed} (34)
41
42// RUN: c-index-test -code-completion-at=%s:12:15 -x objective-c++ -std=c++11 %s | FileCheck -check-prefix=CHECK-CC2 %s
43// RUN: c-index-test -code-completion-at=%s:12:21 -x objective-c++ -std=c++11 %s | FileCheck -check-prefix=CHECK-CC3 %s
44