ymandel added inline comments.
================ Comment at: clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp:558 + int m; + int f(X x) { return m; } + }; ---------------- steveire wrote: > Are we missing a matcher that would reach the type of X in this case? > `hasImplicitObjectExpression`, or something equivalent? Good question. The reason we're not reaching `X` in this case is that we're distinguishing between `T` and `T*` (like `thisPointerType` does). That's separate from the difference between `on` and `onImplicitObjectArgument`. So, I think we'll at least want a matcher that elides this difference, e.g. `hasObjectType`. I'm less inclined to add matchers that distinguish the written from the coerced member expression (one variant each for the expression and type matchers) given that I think this issue comes up far less for member expressions that don't involve calls. I'm just afraid that the proliferation of matchers might confuse beginners. Note that I extended the test to include the hasPointerType() case (especially since it's now mentioned in the comments). CHANGES SINCE LAST ACTION https://reviews.llvm.org/D56850/new/ https://reviews.llvm.org/D56850 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits