[clang-rename] Prune away AST nodes more correctly and effectively when looking for...
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 22 Nov 2016 17:29:45 +0000 (17:29 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 22 Nov 2016 17:29:45 +0000 (17:29 +0000)
commitb568d99dd76cd88c9ff2f7f266a6678e7a62ab8a
tree22e237d96df3107bafef6f93748bacf46ed2fd31
parentd6a24757876e7c1d29113f41ea241db262d9609c
[clang-rename] Prune away AST nodes more correctly and effectively when looking for a point

Due to the way the preprocessor works nodes can be half in a macro or a
different file. This means checking the file name of the start location
of a Decl is not a correct way of checking if the entire Decl is in that
file. Remove that flawed assumption and replace it with a more effective
check: If the point we're looking for is *inside* of the begin and end
location of a Decl, look inside.

This should make clang-rename more reliable (for example macro'd namespaces
threw it off before, as seen in the test case) and maybe a little faster
by pruning off more stuff that the RecursiveASTVisitor doesn't have to
drill into.

llvm-svn: 287649
clang-tools-extra/clang-rename/USRFinder.cpp
clang-tools-extra/test/clang-rename/Variable.cpp