brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · ca24bc3 Raw
152 lines · cpp
1// Note: the run lines follow their respective tests, since line/column numbers2// matter in this test.3 4/// This is T1.5template<typename T>6void T1(T t) { }7 8/// This is T2.9template<typename T>10void T2(T t) { }11 12/// This is T2<int>.13template<>14void T2(int t) { }15 16void test_CC1() {17 18}19 20// Check that implicit instantiations of class templates and members pick up21// comments from class templates and specializations.22 23/// This is T3.24template<typename T>25class T3 {26public:27  /// This is T4.28  static void T4();29 30  /// This is T5.31  static int T5;32 33  /// This is T6.34  void T6();35 36  /// This is T7.37  int T7;38 39  /// This is T8.40  class T8 {};41 42  /// This is T9.43  enum T9 {44    /// This is T10.45    T1046  };47 48  /// This is T11.49  template<typename U>50  void T11(U t) {}51 52  typedef T3<double> T12;53};54 55void test_CC2_CC3_CC4() {56  T3<int>::T4();57  T3<int> t3;58  t3.T6();59  T3<int>::T8 t8;60}61 62/// This is T100.63template<typename T, typename U>64class T100 {65};66 67/// This is T100<int, T>.68template<typename T>69class T100<int, T> {70public:71  /// This is T101.72  static void T101();73 74  /// This is T102.75  static int T102;76 77  /// This is T103.78  void T103();79 80  /// This is T104.81  int T104;82 83  /// This is T105.84  class T105 {};85 86  /// This is T106.87  enum T106 {88    /// This is T107.89    T10790  };91 92  /// This is T108.93  template<typename U>94  void T108(U t) {}95 96  typedef T100<double, T> T109;97 98  typedef T100<double, double> T110;99};100 101void test_CC5_CC6_CC7() {102  T100<int, long>::T101();103  T100<int, long> t100;104  t100.T103();105  T100<int, long>::T105 t105;106}107 108// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:17:1 %s | FileCheck -check-prefix=CHECK-CC1 %s109// CHECK-CC1: FunctionTemplate:{ResultType void}{TypedText T1}{{.*}}(brief comment: This is T1.)110// CHECK-CC1: FunctionTemplate:{ResultType void}{TypedText T2}{{.*}}(brief comment: This is T2.)111 112// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:56:12 %s | FileCheck -check-prefix=CHECK-CC2 %s113// CHECK-CC2: CXXMethod:{ResultType void}{TypedText T4}{{.*}}(brief comment: This is T4.)114// CHECK-CC2: VarDecl:{ResultType int}{TypedText T5}{{.*}}(brief comment: This is T5.)115 116// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:58:6 %s | FileCheck -check-prefix=CHECK-CC3 %s117// CHECK-CC3: FunctionTemplate:{ResultType void}{TypedText T11}{{.*}}(brief comment: This is T11.)118// CHECK-CC3: CXXMethod:{ResultType void}{TypedText T6}{{.*}}(brief comment: This is T6.)119// CHECK-CC3: FieldDecl:{ResultType int}{TypedText T7}{{.*}}(brief comment: This is T7.)120 121// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:59:12 %s | FileCheck -check-prefix=CHECK-CC4 %s122// CHECK-CC4: EnumConstantDecl:{ResultType T3<int>::T9}{TypedText T10}{{.*}}(brief comment: This is T10.)123// FIXME: after we implement propagating comments through typedefs, this124// typedef for implicit instantiation should pick up the documentation125// comment from class template.126// CHECK-CC4: TypedefDecl:{TypedText T12}127// CHECK-CC4-SHOULD-BE: TypedefDecl:{TypedText T12}{{.*}}(brief comment: This is T3.)128// CHECK-CC4: ClassDecl:{TypedText T8}{{.*}}(brief comment: This is T8.)129// CHECK-CC4: EnumDecl:{TypedText T9}{{.*}}(brief comment: This is T9.)130 131// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:102:20 %s | FileCheck -check-prefix=CHECK-CC5 %s132// CHECK-CC5: CXXMethod:{ResultType void}{TypedText T101}{{.*}}(brief comment: This is T101.)133// CHECK-CC5: VarDecl:{ResultType int}{TypedText T102}{{.*}}(brief comment: This is T102.)134 135// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:104:8 %s | FileCheck -check-prefix=CHECK-CC6 %s136// CHECK-CC6: CXXMethod:{ResultType void}{TypedText T103}{{.*}}(brief comment: This is T103.)137// CHECK-CC6: FieldDecl:{ResultType int}{TypedText T104}{{.*}}(brief comment: This is T104.)138// CHECK-CC6: FunctionTemplate:{ResultType void}{TypedText T108}{{.*}}(brief comment: This is T108.)139 140// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:105:20 %s | FileCheck -check-prefix=CHECK-CC7 %s141// CHECK-CC7: ClassDecl:{TypedText T105}{{.*}}(brief comment: This is T105.)142// CHECK-CC7: EnumDecl:{TypedText T106}{{.*}}(brief comment: This is T106.)143// CHECK-CC7: EnumConstantDecl:{ResultType T100<int, long>::T106}{TypedText T107}{{.*}}(brief comment: This is T107.)144// FIXME: after we implement propagating comments through typedefs, these two145// typedefs for implicit instantiations should pick up the documentation146// comment from class template.147// CHECK-CC7: TypedefDecl:{TypedText T109}148// CHECK-CC7: TypedefDecl:{TypedText T110}149// CHECK-CC7-SHOULD-BE: TypedefDecl:{TypedText T109}{{.*}}(brief comment: This is T100.)150// CHECK-CC7-SHOULD-BE: TypedefDecl:{TypedText T110}{{.*}}(brief comment: This is T100.)151 152