<div dir="ltr">On Thu, Sep 26, 2013 at 9:26 AM, Pedro Delgado Perez <span dir="ltr"><<a href="mailto:pedro.delgadoperez@mail.uca.es" target="_blank">pedro.delgadoperez@mail.uca.es</a>></span> wrote:<br><div class="gmail_extra">
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>
<p>Hello,</p>
<p>Sorry to write you directly, but I have been sending this message since two days ago to cfe-dev but my message is not posted and I need help as soon as possible.</p>
<p>This is the message:</p>
<p>"Up to now, I have been using matchers to match declarations, but now, I need to match an expression and I am having some problems.<br> I am looking for a CXXConstructExpr like the one marked in bold in the next example:<br>

class A{<br>    A() {...}<br>    ...<br> };<br> class B: public A{<br>      B () {<strong> A (); </strong>}<br> }<br>
I think the matcher should follow this structure:<br>
StatementMatcher CE = constructExpr(...);</p>
<p>Then:<br>
<br> 1. If I put nothing within the parentheses, "A()" in class A, "B()" and "A()" in class B are all retrieved. Therefore, I need to indicate that I do not want the definitions. Thus, I thought about the matcher "isDefinition", but it is only for the type "Decl", how can I solve this problem? <br>
 The only thing that I have found is the matcher "hasDeclaration", but I do not know how this matcher could help me in this task. </p></div></blockquote><div>I'm not sure what the question is. You do not want definitions of what?</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p> 2. I also need to ensure that the constructor invoked belongs to a parent class. In the same way, when matching declarations I can ask if the CXXConstructDecl "B()" is "ofClass(recordDecl(isDerivedFrom(...)))". But, with an expression...<br>
</p></div></blockquote><div>Use hasType to match on the type of an expression.</div><div><br></div><div>Cheers,</div><div>/Manuel</div><div><br></div></div></div></div>