1 template <typename T> 2 class Foo { 3 public: 4 void f(T t) {} 5 }; 6 7 void g() { 8 Foo<int> foo; 9 foo.f(0); 10 } 11 12 template <typename T> 13 struct B {}; 14 15 template <typename T> 16 struct D : B<T> {}; 17 18 // FIXME: if c-index-test uses OrigD for symbol info, refererences below should 19 // refer to template specialization decls. 20 // RUN: env CINDEXTEST_INDEXIMPLICITTEMPLATEINSTANTIATIONS=1 c-index-test -index-file %s | FileCheck %s 21 // CHECK: [indexDeclaration]: kind: c++-class-template | name: Foo 22 // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: f 23 // CHECK-NEXT: [indexDeclaration]: kind: function | name: g 24 // CHECK-NEXT: [indexEntityReference]: kind: c++-class-template | name: Foo | USR: c:@ST>1#T@Foo 25 // CHECK-NEXT: [indexEntityReference]: kind: c++-instance-method | name: f | USR: c:@ST>1#T@Foo@F@f#t0.0# 26 27 // CHECK: [indexDeclaration]: kind: c++-class-template | name: D 28 // CHECK-NEXT: <base>: kind: c++-class-template | name: B 29 // CHECK-NEXT: [indexEntityReference]: kind: c++-class-template | name: B 30