RFC: Easier AST Matching by Default


Aaron Ballman and I met by chance in Belfast and we discussed a way forward towards making AST Matchers easier to use, particularly for C++ developers who are not familiar with the details of the Clang AST.

For those unaware, I expanded on this in the EuroLLVM conference this year, and then expanded on it at ACCU:


One step in the process of getting there is changing the default behavior of AST Matchers to ignore invisible nodes while matching using the C++ API, and while matching and dumping AST nodes in clang-query.

I think this is the most important change in the entire proposal as it sets out the intention of making the AST Matchers easier to use for C++ developers who are not already familiar with Clang APIs.

To that end, I've written an AST to motivate the change:


We're looking for feedback before pressing forward with the change. I already have some patches written to port clang-tidy and unit tests to account for the change of default.