diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-08-16 17:52:02 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-08-17 08:35:35 +0000 |
commit | d7717f1ecad45e59304634d7fdbff22681eda075 (patch) | |
tree | f4931e402891670893bdc785523b01eb6542e87d /src/libs/cplusplus/CppRewriter.cpp | |
parent | 837a707ec7bef2eaebffd5b7f4cbba5edbb4110c (diff) | |
download | qt-creator-d7717f1ecad45e59304634d7fdbff22681eda075.tar.gz |
CppEditor: Fix "insert definition" for templates with value parameters
Fixes: QTCREATORBUG-26113
Change-Id: I2d2a1c1bdcffd67072bbda99dabbbfbfafe115c5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/libs/cplusplus/CppRewriter.cpp')
-rw-r--r-- | src/libs/cplusplus/CppRewriter.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libs/cplusplus/CppRewriter.cpp b/src/libs/cplusplus/CppRewriter.cpp index 174004fbff..ac5b763aec 100644 --- a/src/libs/cplusplus/CppRewriter.cpp +++ b/src/libs/cplusplus/CppRewriter.cpp @@ -274,8 +274,15 @@ public: void visit(const TemplateNameId *name) override { QVarLengthArray<TemplateArgument, 8> args(name->templateArgumentCount()); - for (int i = 0; i < name->templateArgumentCount(); ++i) - args[i] = rewrite->rewriteType(name->templateArgumentAt(i).type()); + for (int i = 0; i < name->templateArgumentCount(); ++i) { + const TemplateArgument &oldArg = name->templateArgumentAt(i); + args[i] = rewrite->rewriteType(oldArg.type()); + const NumericLiteral * const number = oldArg.numericLiteral(); + if (number) { + args[i].setNumericLiteral(control()->numericLiteral(number->chars(), + number->size())); + } + } temps.append(control()->templateNameId(identifier(name->identifier()), name->isSpecialization(), args.data(), args.size())); } |