Fariborz Jahanian | 5e0ea19 | 2012-12-06 00:09:40 +0000 | [diff] [blame] | 1 | // RUN: rm -rf %t |
| 2 | // RUN: mkdir %t |
| 3 | // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng -target x86_64-apple-darwin10 std=c++11 %s > %t/out |
| 4 | // RUN: FileCheck %s < %t/out |
| 5 | |
| 6 | // Ensure that XML we generate is not invalid. |
| 7 | // RUN: FileCheck %s -check-prefix=WRONG < %t/out |
| 8 | // WRONG-NOT: CommentXMLInvalid |
| 9 | // rdar://12378714 |
| 10 | |
| 11 | /** |
| 12 | * \brief Aaa |
| 13 | */ |
| 14 | template<typename T> struct A { |
| 15 | /** |
| 16 | * \brief Bbb |
| 17 | */ |
| 18 | A(); |
| 19 | /** |
| 20 | * \brief Ccc |
| 21 | */ |
| 22 | ~A(); |
| 23 | /** |
| 24 | * \brief Ddd |
| 25 | */ |
| 26 | void f() { } |
| 27 | }; |
Manuel Klimek | 36fab8d | 2013-01-10 13:24:24 +0000 | [diff] [blame] | 28 | // CHECK: <Declaration>template <typename T> struct A {}</Declaration> |
Fariborz Jahanian | 762661a | 2012-12-06 17:50:40 +0000 | [diff] [blame] | 29 | // CHECK: <Declaration>A<T>()</Declaration> |
Fariborz Jahanian | 5e0ea19 | 2012-12-06 00:09:40 +0000 | [diff] [blame] | 30 | // CHECK: <Declaration>void ~A<T>()</Declaration> |
| 31 | |
| 32 | /** |
| 33 | * \Brief Eee |
| 34 | */ |
| 35 | template <typename T> struct D : A<T> { |
| 36 | /** |
| 37 | * \brief |
| 38 | */ |
| 39 | using A<T>::f; |
| 40 | |
| 41 | void f(); |
| 42 | }; |
Manuel Klimek | 36fab8d | 2013-01-10 13:24:24 +0000 | [diff] [blame] | 43 | // CHECK: <Declaration>template <typename T> struct D : A<T> {}</Declaration> |
Fariborz Jahanian | 5e0ea19 | 2012-12-06 00:09:40 +0000 | [diff] [blame] | 44 | // CHECK: <Declaration>using A<T>::f</Declaration> |
Fariborz Jahanian | 5c6ae4b | 2012-12-06 00:57:28 +0000 | [diff] [blame] | 45 | |
| 46 | struct Base { |
| 47 | int foo; |
| 48 | }; |
| 49 | /** |
| 50 | * \brief |
| 51 | */ |
| 52 | template<typename T> struct E : Base { |
| 53 | /** |
| 54 | * \brief |
| 55 | */ |
| 56 | using Base::foo; |
| 57 | }; |
Manuel Klimek | 36fab8d | 2013-01-10 13:24:24 +0000 | [diff] [blame] | 58 | // CHECK: <Declaration>template <typename T> struct E : Base {}</Declaration> |
Fariborz Jahanian | 5c6ae4b | 2012-12-06 00:57:28 +0000 | [diff] [blame] | 59 | // CHECK: <Declaration>using Base::foo</Declaration> |
| 60 | |
| 61 | /// \tparam |
| 62 | /// \param AAA Blah blah |
| 63 | template<typename T> |
| 64 | void func_template_1(T AAA); |
| 65 | // CHECK: <Declaration>template <typename T> void func_template_1(T AAA)</Declaration> |
| 66 | |
| 67 | template<template<template<typename CCC> class DDD, class BBB> class AAA> |
| 68 | void func_template_2(); |
Manuel Klimek | 36fab8d | 2013-01-10 13:24:24 +0000 | [diff] [blame] | 69 | // FIXME: There is not Declaration field in the generated output. |