summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-10-07 14:31:32 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-10-08 09:20:10 +0000
commit54fefd89b86f9b7c3496317bcfcf3882ff72e67c (patch)
tree284667f5855e901148f5e7f70aae87a4c28db275 /src/libs/cplusplus
parentc2aaa9340881f8220c5683d253a147c2cd77ff6e (diff)
downloadqt-creator-54fefd89b86f9b7c3496317bcfcf3882ff72e67c.tar.gz
C++: Transfer noexcept specifier for refactoring actions
This applies for e.g. * "Add Definition..." (on function decl) * "Move Definition..." (on function decl) * "Insert Virtual Functions of Base Class" (on class specifier) Fixes: QTCREATORBUG-11849 Fixes: QTCREATORBUG-19699 Change-Id: I0d259bc1782470f3b3f19617230005a5594a5cca Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/libs/cplusplus')
-rw-r--r--src/libs/cplusplus/CppRewriter.cpp1
-rw-r--r--src/libs/cplusplus/TypePrettyPrinter.cpp6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/libs/cplusplus/CppRewriter.cpp b/src/libs/cplusplus/CppRewriter.cpp
index fdb5de3851..c52963b023 100644
--- a/src/libs/cplusplus/CppRewriter.cpp
+++ b/src/libs/cplusplus/CppRewriter.cpp
@@ -136,6 +136,7 @@ public:
funTy->setConst(type->isConst());
funTy->setVolatile(type->isVolatile());
funTy->setRefQualifier(type->refQualifier());
+ funTy->setExceptionSpecification(type->exceptionSpecification());
funTy->setName(rewrite->rewriteName(type->name()));
diff --git a/src/libs/cplusplus/TypePrettyPrinter.cpp b/src/libs/cplusplus/TypePrettyPrinter.cpp
index c46117dde7..2ad59c55c8 100644
--- a/src/libs/cplusplus/TypePrettyPrinter.cpp
+++ b/src/libs/cplusplus/TypePrettyPrinter.cpp
@@ -487,6 +487,12 @@ void TypePrettyPrinter::visit(Function *type)
? QLatin1String("&")
: QLatin1String("&&");
}
+
+ // add exception specifier
+ if (const StringLiteral *spec = type->exceptionSpecification()) {
+ appendSpace();
+ _text += QLatin1String(spec->chars());
+ }
}
}