From 869d5fc48c89f4bcc3e522df934590a22384f300 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 27 Mar 2017 17:30:59 +0200 Subject: fix return type --- clang/rename.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/clang/rename.cxx b/clang/rename.cxx index 882cb0d..8cbdecf 100644 --- a/clang/rename.cxx +++ b/clang/rename.cxx @@ -321,6 +321,18 @@ public: std::string aClassName = pDecl->getParent()->getNameAsString(); if (HasNamespace(aClassName) && pDecl->isThisDeclarationADefinition()) RewriteText(pDecl->getQualifierLoc().getBeginLoc(), aClassName.length(), aClassName); + + /* + * inline C C::bar() { return C(); } + * ^ Handle this. + */ + if (HasNamespace(aClassName)) + { + clang::QualType pType = pDecl->getReturnType(); + const clang::RecordDecl* pRecordDecl = pType->getAsCXXRecordDecl(); + if (pRecordDecl) + RewriteText(pDecl->getReturnTypeSourceRange().getBegin(), pRecordDecl->getNameAsString().length(), pRecordDecl->getNameAsString()); + } return true; } -- cgit v1.2.3