[clang-rename] cleanup `auto` usages
As Alexander pointed out, LLVM Coding Standards are more conservative about
using auto, i.e. it should be used in the following situations:
* When the type is obvious, i.e. explicitly mentioned in the same expression.
For example `if (const clang::FieldDecl *FieldDecl = Initializer->getMember())`.
* When the type is totally non-obvious and one iterates over something. For
example
`for (const auto &CurrDecl : Context.getTranslationUnitDecl()->decls())`.
Otherwise the type should be explicitly stated.
Reviewers: alexfh
Differential Revision: https://reviews.llvm.org/D23397
llvm-svn: 278760
diff --git a/clang-tools-extra/clang-rename/USRFinder.cpp b/clang-tools-extra/clang-rename/USRFinder.cpp
index 1ad7e9e..a554250 100644
--- a/clang-tools-extra/clang-rename/USRFinder.cpp
+++ b/clang-tools-extra/clang-rename/USRFinder.cpp
@@ -60,13 +60,13 @@
// Expression visitors:
bool VisitDeclRefExpr(const DeclRefExpr *Expr) {
- const auto *Decl = Expr->getFoundDecl();
+ const NamedDecl *Decl = Expr->getFoundDecl();
return setResult(Decl, Expr->getLocation(),
Decl->getNameAsString().length());
}
bool VisitMemberExpr(const MemberExpr *Expr) {
- const auto *Decl = Expr->getFoundDecl().getDecl();
+ const NamedDecl *Decl = Expr->getFoundDecl().getDecl();
return setResult(Decl, Expr->getMemberLoc(),
Decl->getNameAsString().length());
}
@@ -74,9 +74,10 @@
// Other visitors:
bool VisitTypeLoc(const TypeLoc Loc) {
- const auto TypeBeginLoc = Loc.getBeginLoc();
- const auto TypeEndLoc = Lexer::getLocForEndOfToken(
- TypeBeginLoc, 0, Context.getSourceManager(), Context.getLangOpts());
+ const SourceLocation TypeBeginLoc = Loc.getBeginLoc();
+ const SourceLocation TypeEndLoc = Lexer::getLocForEndOfToken(
+ TypeBeginLoc, 0, Context.getSourceManager(),
+ Context.getLangOpts());
if (const auto *TemplateTypeParm =
dyn_cast<TemplateTypeParmType>(Loc.getType())) {
return setResult(TemplateTypeParm->getDecl(), TypeBeginLoc, TypeEndLoc);
@@ -117,7 +118,8 @@
// \returns false on success and sets Result.
void handleNestedNameSpecifierLoc(NestedNameSpecifierLoc NameLoc) {
while (NameLoc) {
- const auto *Decl = NameLoc.getNestedNameSpecifier()->getAsNamespace();
+ const NamespaceDecl *Decl =
+ NameLoc.getNestedNameSpecifier()->getAsNamespace();
setResult(Decl, NameLoc.getLocalBeginLoc(), NameLoc.getLocalEndLoc());
NameLoc = NameLoc.getPrefix();
}
@@ -173,14 +175,13 @@
const NamedDecl *getNamedDeclAt(const ASTContext &Context,
const SourceLocation Point) {
- const auto SearchFile = Context.getSourceManager().getFilename(Point);
+ StringRef SearchFile = Context.getSourceManager().getFilename(Point);
NamedDeclFindingASTVisitor Visitor(Point, Context);
// We only want to search the decls that exist in the same file as the point.
- auto Decls = Context.getTranslationUnitDecl()->decls();
- for (auto &CurrDecl : Decls) {
- const auto FileLoc = CurrDecl->getLocStart();
- const auto FileName = Context.getSourceManager().getFilename(FileLoc);
+ for (const auto *CurrDecl : Context.getTranslationUnitDecl()->decls()) {
+ const SourceLocation FileLoc = CurrDecl->getLocStart();
+ StringRef FileName = Context.getSourceManager().getFilename(FileLoc);
// FIXME: Add test.
if (FileName == SearchFile) {
Visitor.TraverseDecl(CurrDecl);