<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 27, 2018 at 12:43 PM Gabor Marton via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">martong added a comment.<br>
<br>
> Finder.match also has an overload that takes the node. Can you wrap "Pattern" above in the anyOf(hasDescendant(...), ...) and match on the node instead of the full AST?<br>
<br>
Ok, I changed and wrapped the pattern:<br>
<br>
  template <typename MatcherType><br>
  NodeType *match(const Decl *D, const MatcherType &AMatcher) {<br>
    MatchFinder Finder;<br>
    auto WrappedMatcher = anyOf(AMatcher.bind(""), hasDescendant(AMatcher.bind("")));<br>
    Finder.addMatcher(WrappedMatcher, this);<br>
    // ...<br>
  }<br></blockquote><div><br></div><div>If you know the node is a decl, wrapping it in decl() should be enough.</div><div>Does this work?</div><div>auto WrappedMatcher = decl(anyOf(...));</div><div><br></div></div></div>