• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 using MyTypeAlias = int;
2 
3 extern "C" {
Allocate()4   template < typename T > *Allocate() { }
5 }
6 
7 // rdar://14063074
8 namespace rdar14063074 {
9 template <typename T>
10 struct TS {};
11 struct TS<int> {};
12 
13 template <typename T>
tfoo()14 void tfoo() {}
15 void tfoo<int>() {}
16 }
17 
18 namespace crash1 {
19 template<typename T> class A {
20   A(A &) = delete;
21   void meth();
22 };
23 template <> void A<int>::meth();
24 template class A<int>;
25 }
26 
27 class B {
28   mutable int x_;
29   int y_;
30 };
31 // RUN: c-index-test -index-file %s > %t
32 // RUN: FileCheck %s -input-file=%t
33 
34 // CHECK: [indexDeclaration]: kind: type-alias | name: MyTypeAlias | {{.*}} | loc: 1:7
35 // CHECK: [indexDeclaration]: kind: struct-template-spec | name: TS | {{.*}} | loc: 11:8
36 // CHECK: [indexDeclaration]: kind: function-template-spec | name: tfoo | {{.*}} | loc: 15:6
37 // CHECK: [indexDeclaration]: kind: c++-instance-method | name: meth | {{.*}} | loc: 23:26
38 // CHECK: [indexDeclaration]: kind: field | name: x_ | USR: c:@S@B@FI@x_ | lang: C++ | cursor: FieldDecl=x_:28:15 (Definition) (mutable) | loc: 28:15 | semantic-container: [B:27:7] | lexical-container: [B:27:7] | isRedecl: 0 | isDef: 1 | isContainer: 0 | isImplicit: 0
39 // CHECK: [indexDeclaration]: kind: field | name: y_ | USR: c:@S@B@FI@y_ | lang: C++ | cursor: FieldDecl=y_:29:7 (Definition) | loc: 29:7 | semantic-container: [B:27:7] | lexical-container: [B:27:7] | isRedecl: 0 | isDef: 1 | isContainer: 0 | isImplicit: 0
40