[LibTooling] Relax Transformer to allow rewriting macro expansions
authorYitzhak Mandelbaum <yitzhakm@google.com>
Thu, 18 Jul 2019 17:44:54 +0000 (17:44 +0000)
committerYitzhak Mandelbaum <yitzhakm@google.com>
Thu, 18 Jul 2019 17:44:54 +0000 (17:44 +0000)
commit3f1ab737e2199415c072fd6624a728949eb30342
treebe9e838e6419cb2aa74a70d382a25702fdadb80c
parent3e93131dd292800fd9f56c93a81d85fb86e3116f
[LibTooling] Relax Transformer to allow rewriting macro expansions

Summary:
Currently, Transformer rejects any changes to source locations inside macro
expansions. This change relaxes that constraint to allow rewrites when the
entirety of the expansion is replaced, since that can be mapped to replacing the
entirety of the expansion range in the file source.  This change makes
Transformer consistent with the handling of edit ranges in `clang::edit::Commit`
(which is used, for example, for applying `FixItHint`s from diagnostics).

Reviewers: ilya-biryukov

Subscribers: gribozavr, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64518

llvm-svn: 366473
clang/lib/Tooling/Refactoring/Transformer.cpp
clang/unittests/Tooling/TransformerTest.cpp