diff options
author | Alex Lorenz <arphaman@gmail.com> | 2017-10-06 19:49:29 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2017-10-06 19:49:29 +0000 |
commit | cdb9a05a817a417a4a9c17f330e849c509a8b594 (patch) | |
tree | 11f95070c28a6dbecb939016e11498517c6e83e6 /clang/lib/Tooling/Refactoring | |
parent | a1cf61b6fc8a990173bb00a5b5b9a9853c54f4a3 (diff) | |
download | bcm5719-llvm-cdb9a05a817a417a4a9c17f330e849c509a8b594.tar.gz bcm5719-llvm-cdb9a05a817a417a4a9c17f330e849c509a8b594.zip |
Revert r315087
clang-refactor crashes on some bots after this commit
llvm-svn: 315095
Diffstat (limited to 'clang/lib/Tooling/Refactoring')
-rw-r--r-- | clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp b/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp index 547d7bb6bcd..fe3067f8258 100644 --- a/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp +++ b/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp @@ -23,8 +23,6 @@ #include "clang/Tooling/CommonOptionsParser.h" #include "clang/Tooling/Refactoring.h" #include "clang/Tooling/Refactoring/RefactoringAction.h" -#include "clang/Tooling/Refactoring/RefactoringOptions.h" -#include "clang/Tooling/Refactoring/Rename/SymbolName.h" #include "clang/Tooling/Refactoring/Rename/USRFinder.h" #include "clang/Tooling/Refactoring/Rename/USRFindingAction.h" #include "clang/Tooling/Refactoring/Rename/USRLocFinder.h" @@ -77,8 +75,7 @@ private: class RenameOccurrences final : public SourceChangeRefactoringRule { public: - RenameOccurrences(const NamedDecl *ND, std::string NewName) - : Finder(ND), NewName(NewName) {} + RenameOccurrences(const NamedDecl *ND) : Finder(ND) {} Expected<AtomicChanges> createSourceReplacements(RefactoringRuleContext &Context) { @@ -86,15 +83,15 @@ public: Finder.findSymbolOccurrences(Context); if (!Occurrences) return Occurrences.takeError(); - // FIXME: Verify that the new name is valid. - SymbolName Name(NewName); + // FIXME: This is a temporary workaround that's needed until the refactoring + // options are implemented. + StringRef NewName = "Bar"; return createRenameReplacements( - *Occurrences, Context.getASTContext().getSourceManager(), Name); + *Occurrences, Context.getASTContext().getSourceManager(), NewName); } private: OccurrenceFinder Finder; - std::string NewName; }; class LocalRename final : public RefactoringAction { @@ -110,7 +107,7 @@ public: RefactoringActionRules createActionRules() const override { RefactoringActionRules Rules; Rules.push_back(createRefactoringActionRule<RenameOccurrences>( - SymbolSelectionRequirement(), OptionRequirement<NewNameOption>())); + SymbolSelectionRequirement())); return Rules; } }; @@ -123,18 +120,19 @@ std::unique_ptr<RefactoringAction> createLocalRenameAction() { Expected<std::vector<AtomicChange>> createRenameReplacements(const SymbolOccurrences &Occurrences, - const SourceManager &SM, const SymbolName &NewName) { + const SourceManager &SM, + ArrayRef<StringRef> NewNameStrings) { // FIXME: A true local rename can use just one AtomicChange. std::vector<AtomicChange> Changes; for (const auto &Occurrence : Occurrences) { ArrayRef<SourceRange> Ranges = Occurrence.getNameRanges(); - assert(NewName.getNamePieces().size() == Ranges.size() && + assert(NewNameStrings.size() == Ranges.size() && "Mismatching number of ranges and name pieces"); AtomicChange Change(SM, Ranges[0].getBegin()); for (const auto &Range : llvm::enumerate(Ranges)) { auto Error = Change.replace(SM, CharSourceRange::getCharRange(Range.value()), - NewName.getNamePieces()[Range.index()]); + NewNameStrings[Range.index()]); if (Error) return std::move(Error); } @@ -198,7 +196,7 @@ public: } // FIXME: Support multi-piece names. // FIXME: better error handling (propagate error out). - SymbolName NewNameRef(NewName); + StringRef NewNameRef = NewName; Expected<std::vector<AtomicChange>> Change = createRenameReplacements(Occurrences, SourceMgr, NewNameRef); if (!Change) { |