summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-03-27 17:30:59 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-03-27 17:30:59 +0200
commit869d5fc48c89f4bcc3e522df934590a22384f300 (patch)
treede9b398a0901af33def0b1223e79515f73f39cc3
parent5d773f81051b3090d3c29e1cfee1d66e5ee5c96a (diff)
fix return type
-rw-r--r--clang/rename.cxx12
1 files changed, 12 insertions, 0 deletions
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;
}