diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2012-08-02 21:36:57 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2012-08-02 21:36:57 +0000 |
commit | 967e5d7ebb775a93f9c200d19d557d18bf945f10 (patch) | |
tree | 3314db48c1561df1d1710aec363ceb3112ad191d | |
parent | 9f3b9d54ccbbf212591602f389ebde7923627490 (diff) |
Comments: handle template paramter documentation in alias-declaration
templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161215 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/AST/Comment.cpp | 4 | ||||
-rw-r--r-- | test/Sema/warn-documentation.cpp | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/AST/Comment.cpp b/lib/AST/Comment.cpp index 15b80c6455..ecf6d2a553 100644 --- a/lib/AST/Comment.cpp +++ b/lib/AST/Comment.cpp @@ -194,6 +194,10 @@ void DeclInfo::fill() { } else if (isa<ClassTemplateSpecializationDecl>(ThisDecl)) { IsTemplateDecl = true; IsTemplateSpecialization = true; + } else if (const TypeAliasTemplateDecl *TAT = + dyn_cast<TypeAliasTemplateDecl>(ThisDecl)) { + IsTemplateDecl = true; + TemplateParameters = TAT->getTemplateParameters(); } IsFilled = true; } diff --git a/test/Sema/warn-documentation.cpp b/test/Sema/warn-documentation.cpp index b31e480db8..44d24440f0 100644 --- a/test/Sema/warn-documentation.cpp +++ b/test/Sema/warn-documentation.cpp @@ -250,6 +250,18 @@ void test_tparam11(); template<int I> void test_tparam12(); +template<typename T, typename U> +class test_tparam13 { }; + +/// \tparam T Aaa +template<typename T> +using test_tparam14 = test_tparam13<T, int>; + +// expected-warning@+1 {{template parameter 'U' not found in the template declaration}} expected-note@+1 {{did you mean 'T'?}} +/// \tparam U Aaa +template<typename T> +using test_tparam15 = test_tparam13<T, int>; + // expected-warning@+1 {{empty paragraph passed to '\brief' command}} int test1; ///< \brief\brief Aaa |