file-refs.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. namespace NS {
  2. class C {
  3. public:
  4. C() { }
  5. void m();
  6. };
  7. }
  8. void NS::C::m() {
  9. C c;
  10. c.m();
  11. }
  12. void f() {
  13. NS::C c1();
  14. NS::C c2 = NS::C();
  15. }
  16. void over(int);
  17. void over(float);
  18. void test_over() {
  19. over(0);
  20. over(0.0f);
  21. }
  22. template <typename T>
  23. T tf(T t) {
  24. return t;
  25. }
  26. namespace Test2 {
  27. struct S {
  28. S(int x, int y);
  29. S();
  30. };
  31. typedef S Cake;
  32. void f() {
  33. Cake p;
  34. p = Test2::S(0,2);
  35. p = Test2::Cake(0,2);
  36. }
  37. }
  38. // RUN: c-index-test \
  39. // RUN: -file-refs-at=%s:9:7 \
  40. // CHECK: NamespaceRef=NS:1:11
  41. // CHECK-NEXT: Namespace=NS:1:11 (Definition) =[1:11 - 1:13]
  42. // CHECK-NEXT: NamespaceRef=NS:1:11 =[9:6 - 9:8]
  43. // CHECK-NEXT: NamespaceRef=NS:1:11 =[15:3 - 15:5]
  44. // CHECK-NEXT: NamespaceRef=NS:1:11 =[16:3 - 16:5]
  45. // CHECK-NEXT: NamespaceRef=NS:1:11 =[16:14 - 16:16]
  46. // RUN: -file-refs-at=%s:2:9 \
  47. // CHECK-NEXT: ClassDecl=C:2:9 (Definition)
  48. // CHECK-NEXT: ClassDecl=C:2:9 (Definition) =[2:9 - 2:10]
  49. // CHECK-NEXT: CXXConstructor=C:4:5 (Definition) =[4:5 - 4:6]
  50. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[9:10 - 9:11]
  51. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[10:3 - 10:4]
  52. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[15:7 - 15:8]
  53. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:7 - 16:8]
  54. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:18 - 16:19]
  55. // RUN: -file-refs-at=%s:16:18 \
  56. // CHECK-NEXT: CallExpr=C:4:5
  57. // CHECK-NEXT: ClassDecl=C:2:9 (Definition) =[2:9 - 2:10]
  58. // CHECK-NEXT: CXXConstructor=C:4:5 (Definition) =[4:5 - 4:6]
  59. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[9:10 - 9:11]
  60. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[10:3 - 10:4]
  61. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[15:7 - 15:8]
  62. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:7 - 16:8]
  63. // CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:18 - 16:19]
  64. // RUN: -file-refs-at=%s:20:8 \
  65. // CHECK-NEXT: FunctionDecl=over:20:6
  66. // CHECK-NEXT: FunctionDecl=over:20:6 =[20:6 - 20:10]
  67. // CHECK-NEXT: DeclRefExpr=over:20:6 =[24:3 - 24:7]
  68. // RUN: -file-refs-at=%s:28:1 \
  69. // CHECK-NEXT: TypeRef=T:27:20
  70. // FIXME: Missing TemplateTypeParameter=T:27:20 (Definition)
  71. // CHECK-NEXT: TypeRef=T:27:20 =[28:1 - 28:2]
  72. // CHECK-NEXT: TypeRef=T:27:20 =[28:6 - 28:7]
  73. // RUN: -file-refs-at=%s:43:14 \
  74. // CHECK-NEXT: CallExpr=S:35:3
  75. // CHECK-NEXT: StructDecl=S:34:8 (Definition) =[34:8 - 34:9]
  76. // CHECK-NEXT: CXXConstructor=S:35:3 =[35:3 - 35:4]
  77. // CHECK-NEXT: CXXConstructor=S:36:3 =[36:3 - 36:4]
  78. // CHECK-NEXT: TypeRef=struct Test2::S:34:8 =[39:9 - 39:10]
  79. // CHECK-NEXT: TypeRef=struct Test2::S:34:8 =[43:14 - 43:15]
  80. // RUN: -file-refs-at=%s:44:16 \
  81. // CHECK-NEXT: CallExpr=S:35:3
  82. // CHECK-NEXT: TypedefDecl=Cake:39:11 (Definition) =[39:11 - 39:15]
  83. // CHECK-NEXT: TypeRef=Cake:39:11 =[42:3 - 42:7]
  84. // CHECK-NEXT: TypeRef=Cake:39:11 =[44:14 - 44:18]
  85. // RUN: %s | FileCheck %s