This just copies ExprMutationAnalyzer to Tooling/Analysis with minor tweaks around including path & namespaces.
2/3 will change existing references to old location to new location.
3/3 will delete the old copy.
Could you fix the modulemap (might amount to reverting the change Eric made in r342827? or maybe it's more involved than that) & validate that the modules build is working with this change (probably undo Eric's change, validate that you see the breakage that Eric was trying to fix, then apply your change & see if it clears up as well)?
I'm having a déjà vu.
Wasn't there already an attempt to have EMA in clang proper,
and it was scrapped with reasoning along the lines of "it is slow by design"?
If yes, what changed? (one might expect that to be in the description..)
This is moving to (a new dir) Tooling/Analysis with Tooling/ being a place not part of clang proper but can be depended by static analyzer.
Previously EMA was moved from clang-tidy to it's current location so that it could be used by static analyzer, but caused http://llvm.org/viewvc/llvm-project?view=revision&revision=342827