summaryrefslogtreecommitdiff
path: root/src/libs/3rdparty/cplusplus/Bind.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Bind.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Bind.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp
index 98310f9ee8..b21b167655 100644
--- a/src/libs/3rdparty/cplusplus/Bind.cpp
+++ b/src/libs/3rdparty/cplusplus/Bind.cpp
@@ -2639,10 +2639,14 @@ bool Bind::visit(TemplateIdAST *ast)
}
const Identifier *id = identifier(ast->identifier_token);
+ const int tokenKindBeforeIdentifier(translationUnit()->tokenKind(ast->identifier_token - 1));
+ const bool isSpecialization = (tokenKindBeforeIdentifier == T_CLASS ||
+ tokenKindBeforeIdentifier == T_STRUCT);
if (templateArguments.empty())
- _name = control()->templateNameId(id);
+ _name = control()->templateNameId(id, isSpecialization);
else
- _name = control()->templateNameId(id, &templateArguments[0], templateArguments.size());
+ _name = control()->templateNameId(id, isSpecialization, &templateArguments[0],
+ templateArguments.size());
ast->name = _name;
return false;