From: Kirill Bobyrev Date: Mon, 15 Aug 2016 23:20:05 +0000 (+0000) Subject: [clang-rename] cleanup `auto` usages X-Git-Tag: llvmorg-4.0.0-rc1~12372 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6b7d8c294429c25e225b87769e4381659dc3bbb0;p=platform%2Fupstream%2Fllvm.git [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/RenamingAction.cpp b/clang-tools-extra/clang-rename/RenamingAction.cpp index aec075f..6fb8b14 100644 --- a/clang-tools-extra/clang-rename/RenamingAction.cpp +++ b/clang-tools-extra/clang-rename/RenamingAction.cpp @@ -52,7 +52,7 @@ public: void HandleOneRename(ASTContext &Context, const std::string &NewName, const std::string &PrevName, const std::vector &USRs) { - const auto &SourceMgr = Context.getSourceManager(); + const SourceManager &SourceMgr = Context.getSourceManager(); std::vector RenamingCandidates; std::vector NewCandidates; @@ -61,7 +61,7 @@ public: RenamingCandidates.insert(RenamingCandidates.end(), NewCandidates.begin(), NewCandidates.end()); - auto PrevNameLen = PrevName.length(); + unsigned PrevNameLen = PrevName.length(); for (const auto &Loc : RenamingCandidates) { if (PrintLocations) { FullSourceLoc FullLoc(Loc, SourceMgr); @@ -70,8 +70,8 @@ public: << FullLoc.getSpellingColumnNumber() << "\n"; } // FIXME: better error handling. - auto Replace = tooling::Replacement(SourceMgr, Loc, PrevNameLen, NewName); - auto Err = FileToReplaces[Replace.getFilePath()].add(Replace); + tooling::Replacement Replace(SourceMgr, Loc, PrevNameLen, NewName); + llvm::Error Err = FileToReplaces[Replace.getFilePath()].add(Replace); if (Err) llvm::errs() << "Renaming failed in " << Replace.getFilePath() << "! " << llvm::toString(std::move(Err)) << "\n"; 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 @@ public: // 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 @@ public: // 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(Loc.getType())) { return setResult(TemplateTypeParm->getDecl(), TypeBeginLoc, TypeEndLoc); @@ -117,7 +118,8 @@ public: // \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 @@ private: 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); diff --git a/clang-tools-extra/clang-rename/USRFindingAction.cpp b/clang-tools-extra/clang-rename/USRFindingAction.cpp index afc6186..469d365 100644 --- a/clang-tools-extra/clang-rename/USRFindingAction.cpp +++ b/clang-tools-extra/clang-rename/USRFindingAction.cpp @@ -116,14 +116,14 @@ private: void addUSRsOfOverridenFunctions(const CXXMethodDecl *MethodDecl) { USRSet.insert(getUSRForDecl(MethodDecl)); - for (auto &OverriddenMethod : MethodDecl->overridden_methods()) { + for (const auto &OverriddenMethod : MethodDecl->overridden_methods()) { // Recursively visit each OverridenMethod. addUSRsOfOverridenFunctions(OverriddenMethod); } } bool checkIfOverriddenFunctionAscends(const CXXMethodDecl *MethodDecl) { - for (auto &OverriddenMethod : MethodDecl->overridden_methods()) { + for (const auto &OverriddenMethod : MethodDecl->overridden_methods()) { if (USRSet.find(getUSRForDecl(OverriddenMethod)) != USRSet.end()) { return true; } @@ -143,10 +143,11 @@ private: struct NamedDeclFindingConsumer : public ASTConsumer { void HandleTranslationUnit(ASTContext &Context) override { - const auto &SourceMgr = Context.getSourceManager(); + const SourceManager &SourceMgr = Context.getSourceManager(); // The file we look for the USR in will always be the main source file. - const auto Point = SourceMgr.getLocForStartOfFile(SourceMgr.getMainFileID()) - .getLocWithOffset(SymbolOffset); + const SourceLocation Point = + SourceMgr.getLocForStartOfFile(SourceMgr.getMainFileID()) + .getLocWithOffset(SymbolOffset); if (!Point.isValid()) return; const NamedDecl *FoundDecl = nullptr; diff --git a/clang-tools-extra/clang-rename/USRLocFinder.cpp b/clang-tools-extra/clang-rename/USRLocFinder.cpp index 8d4c7e4..c7ce533 100644 --- a/clang-tools-extra/clang-rename/USRLocFinder.cpp +++ b/clang-tools-extra/clang-rename/USRLocFinder.cpp @@ -67,7 +67,7 @@ public: // Expression visitors: bool VisitDeclRefExpr(const DeclRefExpr *Expr) { - const auto *Decl = Expr->getFoundDecl(); + const NamedDecl *Decl = Expr->getFoundDecl(); if (USRSet.find(getUSRForDecl(Decl)) != USRSet.end()) { const SourceManager &Manager = Decl->getASTContext().getSourceManager(); @@ -79,7 +79,7 @@ public: } bool VisitMemberExpr(const MemberExpr *Expr) { - const auto *Decl = Expr->getFoundDecl().getDecl(); + const NamedDecl *Decl = Expr->getFoundDecl().getDecl(); if (USRSet.find(getUSRForDecl(Decl)) != USRSet.end()) { const SourceManager &Manager = Decl->getASTContext().getSourceManager(); SourceLocation Location = Manager.getSpellingLoc(Expr->getMemberLoc()); @@ -116,7 +116,8 @@ public: // Namespace traversal: void handleNestedNameSpecifierLoc(NestedNameSpecifierLoc NameLoc) { while (NameLoc) { - const auto *Decl = NameLoc.getNestedNameSpecifier()->getAsNamespace(); + const NamespaceDecl *Decl = + NameLoc.getNestedNameSpecifier()->getAsNamespace(); if (Decl && USRSet.find(getUSRForDecl(Decl)) != USRSet.end()) { checkAndAddLocation(NameLoc.getLocalBeginLoc()); } @@ -126,8 +127,8 @@ public: private: void checkAndAddLocation(SourceLocation Loc) { - const auto BeginLoc = Loc; - const auto EndLoc = Lexer::getLocForEndOfToken( + const SourceLocation BeginLoc = Loc; + const SourceLocation EndLoc = Lexer::getLocForEndOfToken( BeginLoc, 0, Context.getSourceManager(), Context.getLangOpts()); StringRef TokenName = Lexer::getSourceText(CharSourceRange::getTokenRange(BeginLoc, EndLoc),