<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/117612/">https://git.reviewboard.kde.org/r/117612/</a>
     </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On April 17th, 2014, 3:46 p.m. UTC, <b>Sven Brauch</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/117612/diff/1/?file=266525#file266525line58" style="color: black; font-weight: bold; text-decoration: underline;">duchain/expressionvisitor.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">protected:</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">57</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="kt">void</span> <span class="nf">setType</span><span class="p">(</span><span class="n">KDevelop</span><span class="o">::</span><span class="n">AbstractType</span><span class="o">::</span><span class="n">Ptr</span> <span class="n">type</span><span class="p">);</span></pre></td>
    <th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">55</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">using</span> <span class="n">KDevelop</span><span class="o">::</span><span class="n">DynamicLanguageExpressionVisitor</span><span class="o">::</span><span class="n">encounter</span><span class="p">;</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">What's this for? Sorry, I'm C++ illiterate and I don't know what it does in this context. Will the function be hidden otherwise?</pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">It's a bit tricky. If I don't put this line, then the C++ compiler sees that I redefine encounter() two lines below, and it completely hides DynamicLanguageExpressionVisitor::encounter . With this line, I tell the C++ compiler that, even if I redefine two versions of encounter, I still want the version of DynamicLanguageExpressionVisitor to be visible.</pre>
<br />




<p>- Denis</p>


<br />
<p>On April 17th, 2014, 12:16 p.m. UTC, Denis Steckelmacher wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for KDevelop.</div>
<div>By Denis Steckelmacher.</div>


<p style="color: grey;"><i>Updated April 17, 2014, 12:16 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdev-qmljs
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Sven Brauch has just added a DynamicLanguageExpressionVisitor class in KDevPlatform. This class contains several useful methods for dynamic language expression visitors, such as everything needed to keep track of the current type and current declaration, and also a method that can be used to build a mixed integral type (very nice addition!)

This patch makes ExpressionVisitor inherit from DynamicLanguageExpressionVisitor. The patch is fairly simple as it removes one setType() method and changes every use of setType to encounter(). I also had to change QmlJS::findDeclaration, as it took a DUContextPointer parameter. The problem was that the constructor of DUContextPointer requires a DUContext*, while DynamicLanguageExpressionVisitor only provides a const DUContext*.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">All the existing unit tests pass with the simplified expression visitor.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>duchain/expressionvisitor.h <span style="color: grey">(bd82ff2)</span></li>

 <li>duchain/expressionvisitor.cpp <span style="color: grey">(a7e0ba6)</span></li>

 <li>duchain/helper.h <span style="color: grey">(23a6d0e)</span></li>

 <li>duchain/helper.cpp <span style="color: grey">(935ccd8)</span></li>

 <li>duchain/usebuilder.cpp <span style="color: grey">(154a4d3)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/117612/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>