OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // Changes Blink-style names to Chrome-style names. Currently transforms: | 5 // Changes Blink-style names to Chrome-style names. Currently transforms: |
6 // fields: | 6 // fields: |
7 // int m_operationCount => int operation_count_ | 7 // int m_operationCount => int operation_count_ |
8 // variables (including parameters): | 8 // variables (including parameters): |
9 // int mySuperVariable => int my_super_variable | 9 // int mySuperVariable => int my_super_variable |
10 // constants: | 10 // constants: |
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
516 std::string new_name; | 516 std::string new_name; |
517 if (!GetNameForDecl(*decl, *context, new_name)) | 517 if (!GetNameForDecl(*decl, *context, new_name)) |
518 return; // If false, the name was not suitable for renaming. | 518 return; // If false, the name was not suitable for renaming. |
519 llvm::StringRef old_name = decl->getName(); | 519 llvm::StringRef old_name = decl->getName(); |
520 if (old_name == new_name) | 520 if (old_name == new_name) |
521 return; | 521 return; |
522 clang::SourceLocation loc = TargetNodeTraits<TargetNode>::GetLoc( | 522 clang::SourceLocation loc = TargetNodeTraits<TargetNode>::GetLoc( |
523 *result.Nodes.getNodeAs<TargetNode>( | 523 *result.Nodes.getNodeAs<TargetNode>( |
524 TargetNodeTraits<TargetNode>::GetName())); | 524 TargetNodeTraits<TargetNode>::GetName())); |
525 clang::CharSourceRange range = clang::CharSourceRange::getTokenRange(loc); | 525 clang::CharSourceRange range = clang::CharSourceRange::getTokenRange(loc); |
526 | |
527 // Check if |range| really covers text of |old_name|. This might not be | |
528 // true when specializing a templatized class that had an unnamed parameter | |
529 // in one of method declarations. | |
530 StringRef old_text = clang::Lexer::getSourceText( | |
531 range, *result.SourceManager, result.Context->getLangOpts()); | |
532 if (!loc.isMacroID() && old_text != old_name) | |
533 return; | |
534 | |
Łukasz Anforowicz
2016/08/15 23:05:08
The new code makes the new regression test pass.
dcheng
2016/08/25 04:08:51
How were you printing out this diagnostic info? Re
Łukasz Anforowicz
2016/08/25 23:32:33
Thanks for bringing up "spelling location". I can
| |
526 replacements_->emplace(*result.SourceManager, range, new_name); | 535 replacements_->emplace(*result.SourceManager, range, new_name); |
527 replacement_names_.emplace(old_name.str(), std::move(new_name)); | 536 replacement_names_.emplace(old_name.str(), std::move(new_name)); |
528 } | 537 } |
529 | 538 |
530 const std::unordered_map<std::string, std::string>& replacement_names() | 539 const std::unordered_map<std::string, std::string>& replacement_names() |
531 const { | 540 const { |
532 return replacement_names_; | 541 return replacement_names_; |
533 } | 542 } |
534 | 543 |
535 private: | 544 private: |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
880 for (const auto& r : replacements) { | 889 for (const auto& r : replacements) { |
881 std::string replacement_text = r.getReplacementText().str(); | 890 std::string replacement_text = r.getReplacementText().str(); |
882 std::replace(replacement_text.begin(), replacement_text.end(), '\n', '\0'); | 891 std::replace(replacement_text.begin(), replacement_text.end(), '\n', '\0'); |
883 llvm::outs() << "r:::" << r.getFilePath() << ":::" << r.getOffset() | 892 llvm::outs() << "r:::" << r.getFilePath() << ":::" << r.getOffset() |
884 << ":::" << r.getLength() << ":::" << replacement_text << "\n"; | 893 << ":::" << r.getLength() << ":::" << replacement_text << "\n"; |
885 } | 894 } |
886 llvm::outs() << "==== END EDITS ====\n"; | 895 llvm::outs() << "==== END EDITS ====\n"; |
887 | 896 |
888 return 0; | 897 return 0; |
889 } | 898 } |
OLD | NEW |