diff options
Diffstat (limited to 'clang-tools-extra/clang-rename/RenamingAction.cpp')
-rw-r--r-- | clang-tools-extra/clang-rename/RenamingAction.cpp | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/clang-tools-extra/clang-rename/RenamingAction.cpp b/clang-tools-extra/clang-rename/RenamingAction.cpp deleted file mode 100644 index 61a4e800fd1..00000000000 --- a/clang-tools-extra/clang-rename/RenamingAction.cpp +++ /dev/null @@ -1,90 +0,0 @@ -//===--- tools/extra/clang-rename/RenamingAction.cpp - Clang rename tool --===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// \brief Provides an action to rename every symbol at a point. -/// -//===----------------------------------------------------------------------===// - -#include "RenamingAction.h" -#include "USRLocFinder.h" -#include "clang/AST/ASTConsumer.h" -#include "clang/AST/ASTContext.h" -#include "clang/Basic/FileManager.h" -#include "clang/Frontend/CompilerInstance.h" -#include "clang/Frontend/FrontendAction.h" -#include "clang/Lex/Preprocessor.h" -#include "clang/Lex/Lexer.h" -#include "clang/Tooling/CommonOptionsParser.h" -#include "clang/Tooling/Refactoring.h" -#include "clang/Tooling/Tooling.h" -#include <stdio.h> -#include <stdlib.h> -#include <ctype.h> -#include <string> -#include <vector> - -using namespace llvm; - -namespace clang { -namespace rename { - -class RenamingASTConsumer : public ASTConsumer { -public: - RenamingASTConsumer(const std::string &NewName, - const std::string &PrevName, - const std::vector<std::string> &USRs, - tooling::Replacements &Replaces, - bool PrintLocations) - : NewName(NewName), PrevName(PrevName), USRs(USRs), Replaces(Replaces), - PrintLocations(PrintLocations) { - } - - void HandleTranslationUnit(ASTContext &Context) override { - const auto &SourceMgr = Context.getSourceManager(); - std::vector<SourceLocation> RenamingCandidates; - std::vector<SourceLocation> NewCandidates; - - for (const auto &USR : USRs) { - NewCandidates = getLocationsOfUSR(USR, Context.getTranslationUnitDecl()); - RenamingCandidates.insert(RenamingCandidates.end(), NewCandidates.begin(), - NewCandidates.end()); - NewCandidates.clear(); - } - - auto PrevNameLen = PrevName.length(); - if (PrintLocations) - for (const auto &Loc : RenamingCandidates) { - FullSourceLoc FullLoc(Loc, SourceMgr); - errs() << "clang-rename: renamed at: " << SourceMgr.getFilename(Loc) - << ":" << FullLoc.getSpellingLineNumber() << ":" - << FullLoc.getSpellingColumnNumber() << "\n"; - Replaces.insert(tooling::Replacement(SourceMgr, Loc, PrevNameLen, - NewName)); - } - else - for (const auto &Loc : RenamingCandidates) - Replaces.insert(tooling::Replacement(SourceMgr, Loc, PrevNameLen, - NewName)); - } - -private: - const std::string &NewName, &PrevName; - const std::vector<std::string> &USRs; - tooling::Replacements &Replaces; - bool PrintLocations; -}; - -std::unique_ptr<ASTConsumer> RenamingAction::newASTConsumer() { - return llvm::make_unique<RenamingASTConsumer>(NewName, PrevName, USRs, - Replaces, PrintLocations); -} - -} -} |