diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-03-27 17:56:48 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-03-27 17:56:48 +0200 |
commit | 1dee6df851174f1722cc618d977cdeaafb13a666 (patch) | |
tree | d188f3cbc0122504fdd33a6af479e7ac5f9d1ada | |
parent | 869d5fc48c89f4bcc3e522df934590a22384f300 (diff) |
fix returned references
-rw-r--r-- | clang/rename.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/rename.cxx b/clang/rename.cxx index 8cbdecf..4b87cb1 100644 --- a/clang/rename.cxx +++ b/clang/rename.cxx @@ -330,6 +330,17 @@ public: { clang::QualType pType = pDecl->getReturnType(); const clang::RecordDecl* pRecordDecl = pType->getAsCXXRecordDecl(); + + /* + * inline C& C::bar() { return *this; } + * ^ Handle this. + */ + if (!pRecordDecl) + { + if (const clang::ReferenceType* pReferenceType = pType->getAs<clang::ReferenceType>()) + pRecordDecl = pReferenceType->getPointeeType()->getAsCXXRecordDecl(); + } + if (pRecordDecl) RewriteText(pDecl->getReturnTypeSourceRange().getBegin(), pRecordDecl->getNameAsString().length(), pRecordDecl->getNameAsString()); } |