Index: tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
diff --git a/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp b/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
index db208abc2f762e0a7848ddb5f3700cb21743c46f..c5469c23534e011b99816251dc80eb8691367d16 100644 |
--- a/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
+++ b/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
@@ -222,20 +222,21 @@ class RewriterBase : public MatchFinder::MatchCallback { |
: replacements_(replacements) {} |
void run(const MatchFinder::MatchResult& result) override { |
- std::string name; |
+ std::string new_name; |
const DeclNode* decl = result.Nodes.getNodeAs<DeclNode>("decl"); |
clang::ASTContext* context = result.Context; |
- if (!GetNameForDecl(*decl, *context, name)) |
+ if (!GetNameForDecl(*decl, *context, new_name)) |
return; |
- auto r = replacements_->emplace( |
- *result.SourceManager, TargetNodeTraits<TargetNode>::GetRange( |
- *result.Nodes.getNodeAs<TargetNode>( |
- TargetNodeTraits<TargetNode>::kName)), |
- name); |
- auto from = decl->getNameAsString(); |
- auto to = r.first->getReplacementText().str(); |
- if (from != to) |
- replacement_names_.emplace(std::move(from), std::move(to)); |
+ llvm::StringRef old_name = decl->getName(); |
+ if (old_name == new_name) |
dcheng
2016/01/28 06:47:42
I moved this up to reduce the amount of edits emit
|
+ return; |
+ clang::CharSourceRange range = TargetNodeTraits<TargetNode>::GetRange( |
+ *result.Nodes.getNodeAs<TargetNode>( |
+ TargetNodeTraits<TargetNode>::kName)); |
+ if (range.getBegin().isMacroID() || range.getEnd().isMacroID()) |
+ return; |
+ replacements_->emplace(*result.SourceManager, range, new_name); |
+ replacement_names_.emplace(old_name.str(), std::move(new_name)); |
} |
const std::unordered_map<std::string, std::string>& replacement_names() |