summaryrefslogtreecommitdiff
path: root/clang-tools-extra/clangd/CodeCompletionStrings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/CodeCompletionStrings.cpp')
-rw-r--r--clang-tools-extra/clangd/CodeCompletionStrings.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/clang-tools-extra/clangd/CodeCompletionStrings.cpp b/clang-tools-extra/clangd/CodeCompletionStrings.cpp
index d6579640cb0f..9c4241b54057 100644
--- a/clang-tools-extra/clangd/CodeCompletionStrings.cpp
+++ b/clang-tools-extra/clangd/CodeCompletionStrings.cpp
@@ -112,7 +112,7 @@ std::string getDeclComment(const ASTContext &Ctx, const NamedDecl &Decl) {
std::string Doc;
if (Cfg.Documentation.CommentFormat == Config::CommentFormatPolicy::Doxygen &&
- isa<ParmVarDecl>(Decl)) {
+ isa<ParmVarDecl, TemplateTypeParmDecl>(Decl)) {
// Parameters are documented in their declaration context (function or
// template function).
const NamedDecl *ND = dyn_cast<NamedDecl>(Decl.getDeclContext());
@@ -135,7 +135,11 @@ std::string getDeclComment(const ASTContext &Ctx, const NamedDecl &Decl) {
std::string RawDoc;
llvm::raw_string_ostream OS(RawDoc);
- V.parameterDocToString(dyn_cast<ParmVarDecl>(&Decl)->getName(), OS);
+ if (auto *PVD = dyn_cast<ParmVarDecl>(&Decl))
+ V.parameterDocToString(PVD->getName(), OS);
+ else
+ V.templateTypeParmDocToString(
+ cast<TemplateTypeParmDecl>(&Decl)->getName(), OS);
Doc = StringRef(RawDoc).trim().str();
} else {