forked from OSchip/llvm-project
clang-rename: fix renaming of field with implicit initializers
The last check failed as Cla::Cla() was rewritten to Cla::hector(). Reviewers: cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D20150 llvm-svn: 269161
This commit is contained in:
parent
7e61e1509a
commit
6477682c98
|
@ -60,6 +60,11 @@ public:
|
|||
bool VisitCXXConstructorDecl(clang::CXXConstructorDecl *ConstructorDecl) {
|
||||
for (clang::CXXConstructorDecl::init_const_iterator it = ConstructorDecl->init_begin(); it != ConstructorDecl->init_end(); ++it) {
|
||||
const clang::CXXCtorInitializer* Initializer = *it;
|
||||
if (Initializer->getSourceOrder() == -1) {
|
||||
// Ignore implicit initializers.
|
||||
continue;
|
||||
}
|
||||
|
||||
if (const clang::FieldDecl *FieldDecl = Initializer->getAnyMember()) {
|
||||
if (getUSRForDecl(FieldDecl) == USR) {
|
||||
// The initializer refers to a field that is to be renamed.
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
// RUN: cat %s > %t.cpp
|
||||
// RUN: clang-rename -offset=162 -new-name=hector %t.cpp -i --
|
||||
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
|
||||
class A
|
||||
{
|
||||
};
|
||||
|
||||
class Cla
|
||||
{
|
||||
A foo; // CHECK: hector;
|
||||
public:
|
||||
Cla();
|
||||
};
|
||||
|
||||
Cla::Cla() // CHECK: Cla::Cla()
|
||||
{
|
||||
}
|
||||
|
||||
// Use grep -FUbo 'foo' <file> to get the correct offset of foo when changing
|
||||
// this file.
|
Loading…
Reference in New Issue