<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="http://git.reviewboard.kde.org/r/100936/">http://git.reviewboard.kde.org/r/100936/</a>
     </td>
    </tr>
   </table>
   <br />



 <p>Ship it!</p>



 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'm also not sure if the indexForUsedDeclaration is enough, maybe it happens that during updating, this returns "true" even though the declaration is not used any more, so it might happen that unused declarations are only deleted after 2 updates instead of one.
However you should anyway filter away all declarations with "dec->isAutoDeclaration() && !dec->hasUses()" during code-completion, so this probably won't cause problems.

See the comment before pushing.</pre>
 <br />





<div>




<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="http://git.reviewboard.kde.org/r/100936/diff/2/?file=12791#file12791line1502" style="color: black; font-weight: bold; text-decoration: underline;">language/duchain/ducontext.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </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; ">void DUContext::clearImportedParentContexts()</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">1502</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="n">dec</span><span class="o">-></span><span class="n">isAutoDeclaration</span><span class="p">()</span> <span class="p">)</span> <span class="p">{</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'd simply change this to "if( !encountered.contains(dec) && ( !dec->isAutoDeclaration() || !dec->hasUses() ) )"
</pre>
</div>
<br />



<p>- David</p>


<br />
<p>On March 24th, 2011, 2:04 a.m., Sven Brauch wrote:</p>






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

<div>Review request for KDevelop.</div>
<div>By Sven Brauch.</div>


<p style="color: grey;"><i>Updated March 24, 2011, 2:04 a.m.</i></p>




<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;">Allow to mark Declaration instances as "automatically created", so they aren't automatically deleted if they weren't encountered while the context containing them was generated. This is useful for languages like python and php, where you can do something like "foo = A(); foo.x=3" without having defined a property named x in the class A previously.
I'm not sure about the change in ducontext.cpp; maybe that will be too slow, I don't know.</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>language/duchain/declaration.h <span style="color: grey">(92e0c62)</span></li>

 <li>language/duchain/declaration.cpp <span style="color: grey">(b46e4f1)</span></li>

 <li>language/duchain/declarationdata.h <span style="color: grey">(3ae64ba)</span></li>

 <li>language/duchain/ducontext.h <span style="color: grey">(9e7b75b)</span></li>

 <li>language/duchain/ducontext.cpp <span style="color: grey">(3ec527b)</span></li>

 <li>language/duchain/repositories/itemrepository.cpp <span style="color: grey">(c76befd)</span></li>

 <li>language/duchain/uses.h <span style="color: grey">(7f9b90a)</span></li>

 <li>language/duchain/uses.cpp <span style="color: grey">(d1fedee)</span></li>

</ul>

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




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








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