summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-03-27 21:49:40 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-03-27 21:49:40 +0200
commit1807e68b135f26479ae6511dc9cc971e754e763f (patch)
treec8ed25ee0da44700003a30eda6f7502072dddea0
parentf1dad3652388b49555202627dc5e2b45887f57f8 (diff)
handle type of members
-rw-r--r--clang/qa/data/rename-move-from-global.cxx6
-rw-r--r--clang/qa/data/rename-move-from-global.cxx.expected6
-rw-r--r--clang/rename.cxx12
3 files changed, 24 insertions, 0 deletions
diff --git a/clang/qa/data/rename-move-from-global.cxx b/clang/qa/data/rename-move-from-global.cxx
index b7d1c1c..1cc2f5d 100644
--- a/clang/qa/data/rename-move-from-global.cxx
+++ b/clang/qa/data/rename-move-from-global.cxx
@@ -9,6 +9,12 @@ public:
inline C& operator += (int x);
};
+class D
+{
+private:
+ C m_c;
+};
+
C::C() {}
C::~C() {}
diff --git a/clang/qa/data/rename-move-from-global.cxx.expected b/clang/qa/data/rename-move-from-global.cxx.expected
index 40baa3e..36b56e6 100644
--- a/clang/qa/data/rename-move-from-global.cxx.expected
+++ b/clang/qa/data/rename-move-from-global.cxx.expected
@@ -15,6 +15,12 @@ public:
};
}
+class D
+{
+private:
+ ns::C m_c;
+};
+
ns::C::C() {}
ns::C::~C() {}
diff --git a/clang/rename.cxx b/clang/rename.cxx
index 4b87cb1..750641f 100644
--- a/clang/rename.cxx
+++ b/clang/rename.cxx
@@ -156,6 +156,18 @@ public:
// Qualified name includes "C::" as a prefix, normal name does not.
std::string aName = pDecl->getQualifiedNameAsString();
RewriteText(pDecl->getLocation(), pDecl->getNameAsString().length(), aName);
+
+ /*
+ * C m_c;
+ * ^ Handles this.
+ */
+ clang::QualType pType = pDecl->getType();
+ if (clang::CXXRecordDecl* pCXXRecordDecl = pType->getAsCXXRecordDecl())
+ {
+ aName = pCXXRecordDecl->getNameAsString();
+ RewriteText(pDecl->getTypeSpecStartLoc(), aName.length(), aName);
+ }
+
return true;
}