[cfe-dev] ignoring*() and hasParent() matchers

Michael Jabbour via cfe-dev cfe-dev at lists.llvm.org
Thu Jul 5 14:50:22 PDT 2018

I ended up writing my matcher like this:

  expr().bind("literal"),       //inline bind call using a redundant
node matcher
  hasAncestor(                  //climb up the AST to the nearest
//check that this varDecl satisfies the original condition

Any feedback is appreciated, as I am completely new to LibTooling...

P.S.: The actual matcher I am working on is far more complicated.
Inverting it (i.e. using my very first example) would result in much
more difficult problems. Although this seems like a roundabout hack, it
might be effective when nested inside matchers that have already been tested



On 05/07/2018 7:31 PM, Michael Jabbour wrote:
> Hello all,
> When using has*() it is sometimes desirable to use
> ignoringParenCasts(), for example (from the docs):
> varDecl(hasInitializer(ignoringParenCasts(integerLiteral())))
> Is there any way to get the same effect when hasParent(), e.g.:
> integerLiteral(hasParent(ignoringParenCasts(varDecl())))
> Obviously this does not work, but what is the best way to achieve a
> similar effect?
> cheers,
> Mike

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180706/fad4f67f/attachment.html>

More information about the cfe-dev mailing list