Summary
This patch makes the expression evaluator understand
namespace aliases.
This will become important once std::ranges become
more widespread since std::views is defined as:
namespace std { namespace ranges::views {} namespace views = ranges::views; }
Testing
- Added API test
The common pattern in LLVM (and thinking of it, I'm surprised we don't have some kind of helper template for it) is to use find() since operator[] inserts a default-constructed element into the list, which will screw with anyone who concurrently searches using find().