| |
| namespace NS { |
| extern int gx; |
| typedef int MyInt; |
| } |
| |
| enum { |
| EnumVal = 1 |
| }; |
| |
| NS::MyInt NS::gx = EnumVal; |
| |
| void foo() { |
| NS::MyInt x; |
| } |
| |
| enum { |
| SecondVal = EnumVal |
| }; |
| |
| struct S { |
| S& operator++(); |
| int operator*(); |
| S& operator=(int x); |
| S& operator!=(int x); |
| S& operator()(int x); |
| }; |
| |
| void foo2(S &s) { |
| (void)++s; |
| (void)*s; |
| s = 3; |
| (void)(s != 3); |
| s(3); |
| } |
| |
| // RUN: c-index-test -index-file %s | FileCheck %s |
| // CHECK: [indexDeclaration]: kind: namespace | name: NS |
| // CHECK-NEXT: [indexDeclaration]: kind: variable | name: gx |
| // CHECK-NEXT: [indexDeclaration]: kind: typedef | name: MyInt |
| // CHECK-NEXT: [indexDeclaration]: kind: enum |
| // CHECK-NEXT: [indexDeclaration]: kind: enumerator | name: EnumVal |
| // CHECK-NEXT: [indexDeclaration]: kind: variable | name: gx |
| // CHECK-NEXT: [indexEntityReference]: kind: namespace | name: NS |
| // CHECK-NEXT: [indexEntityReference]: kind: typedef | name: MyInt |
| // CHECK-NEXT: [indexEntityReference]: kind: namespace | name: NS |
| // CHECK-NEXT: [indexEntityReference]: kind: enumerator | name: EnumVal |
| // CHECK-NEXT: [indexDeclaration]: kind: function | name: foo |
| // CHECK-NEXT: [indexEntityReference]: kind: namespace | name: NS |
| // CHECK-NEXT: [indexEntityReference]: kind: typedef | name: MyInt |
| // CHECK-NEXT: [indexDeclaration]: kind: enum |
| // CHECK-NEXT: [indexDeclaration]: kind: enumerator | name: SecondVal |
| // CHECK-NEXT: [indexEntityReference]: kind: enumerator | name: EnumVal |
| |
| // CHECK: [indexDeclaration]: kind: function | name: foo2 |
| // CHECK: [indexEntityReference]: kind: c++-instance-method | name: operator++ |
| // CHECK-NEXT: [indexEntityReference]: kind: c++-instance-method | name: operator* |
| // CHECK-NEXT: [indexEntityReference]: kind: c++-instance-method | name: operator= |
| // CHECK-NEXT: [indexEntityReference]: kind: c++-instance-method | name: operator!= |
| // CHECK-NEXT: [indexEntityReference]: kind: c++-instance-method | name: operator() |