diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-03-27 22:08:37 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-03-27 22:08:37 +0200 |
commit | 0e0a185011580d74e19c0054f1d0265c19d9eebd (patch) | |
tree | 62c78a0576a9bd7ce6f338fae9356a63ff8740ed | |
parent | 1807e68b135f26479ae6511dc9cc971e754e763f (diff) |
one more thing to handle
-rw-r--r-- | clang/qa/data/rename-move-from-global.cxx.expected | 2 | ||||
-rw-r--r-- | clang/rename.cxx | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/clang/qa/data/rename-move-from-global.cxx.expected b/clang/qa/data/rename-move-from-global.cxx.expected index 36b56e6..e2f7bcb 100644 --- a/clang/qa/data/rename-move-from-global.cxx.expected +++ b/clang/qa/data/rename-move-from-global.cxx.expected @@ -29,7 +29,7 @@ void ns::C::foo() {} inline ns::C ns::C::bar() { - return C(); + return ns::C(); } inline ns::C& ns::C::operator +=(int /*x*/) diff --git a/clang/rename.cxx b/clang/rename.cxx index 750641f..dfe3bda 100644 --- a/clang/rename.cxx +++ b/clang/rename.cxx @@ -442,6 +442,21 @@ public: { return handleCXXNamedCastExpr(pExpr); } + + bool VisitMaterializeTemporaryExpr(clang::MaterializeTemporaryExpr* pExpr) + { + /* + * d.m_c = C(); + * ^ Handle this. + */ + if (const clang::RecordDecl* pDecl = pExpr->getType()->getAsCXXRecordDecl()) + { + std::string aName = pDecl->getNameAsString(); + RewriteText(pExpr->getExprLoc(), aName.length(), aName); + } + + return true; + } }; class RenameASTConsumer : public clang::ASTConsumer |