Avoid naming conflicts with the old index in modernize-loop-convert.
Summary: The old index declaration is going to be removed anyway, so we can reuse its name if it is the best candidate for the new index.
Reviewers: klimek
Subscribers: cfe-commits, alexfh
Differential Revision: http://reviews.llvm.org/D14437
llvm-svn: 252303
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
index f1fd078f..1f2b40d 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
@@ -820,14 +820,14 @@
if (Len > 1 && ContainerName.endswith(Style == NS_UpperCase ? "S" : "s")) {
IteratorName = ContainerName.substr(0, Len - 1);
// E.g.: (auto thing : things)
- if (!declarationExists(IteratorName))
+ if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
return IteratorName;
}
if (Len > 2 && ContainerName.endswith(Style == NS_UpperCase ? "S_" : "s_")) {
IteratorName = ContainerName.substr(0, Len - 2);
// E.g.: (auto thing : things_)
- if (!declarationExists(IteratorName))
+ if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
return IteratorName;
}
@@ -849,12 +849,12 @@
IteratorName = AppendWithStyle(ContainerName, OldIndex->getName());
// E.g.: (auto container_i : container)
- if (!declarationExists(IteratorName))
+ if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
return IteratorName;
IteratorName = AppendWithStyle(ContainerName, Elem);
// E.g.: (auto container_elem : container)
- if (!declarationExists(IteratorName))
+ if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
return IteratorName;
// Someone defeated my naming scheme...
@@ -875,7 +875,8 @@
int Attempt = 0;
do {
IteratorName = GiveMeName + std::to_string(Attempt++);
- } while (declarationExists(IteratorName));
+ } while (declarationExists(IteratorName) ||
+ IteratorName == OldIndex->getName());
return IteratorName;
}