<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/121757/">https://git.reviewboard.kde.org/r/121757/</a>
     </td>
    </tr>
   </table>
   <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="https://git.reviewboard.kde.org/r/121757/diff/3/?file=338444#file338444line385" style="color: black; font-weight: bold; text-decoration: underline;">duchain/tuduchain.h</a>
    <span style="font-weight: normal;">

     (Diff revision 3)

    </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; ">private:</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#ebb1ba" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">385</font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">ClangHelpers</span><span class="o">::</span><span class="n">findForwardDeclaration</span><span class="p">(</span><span class="n">type</span><span class="p">,</span> <span class="n">m_parentContext</span><span class="o">-></span><span class="n">context</span><span class="p">,</span> <span class="n">parent</span><span class="p">);</span></pre></td>
    <th bgcolor="#ebb1ba" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">unrelated?</p></pre>
 </div>
</div>
<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="https://git.reviewboard.kde.org/r/121757/diff/3/?file=338444#file338444line414" style="color: black; font-weight: bold; text-decoration: underline;">duchain/tuduchain.h</a>
    <span style="font-weight: normal;">

     (Diff revision 3)

    </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; ">private:</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">414</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="k">auto</span> <span class="n">clangType</span> <span class="o">=</span> <span class="n">clang_getCursorType</span><span class="p">(</span><span class="n">cursor</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">413</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="k">auto</span> <span class="n">clangType</span> <span class="o">=</span> <span class="n">clang_getC<span class="hl">anonicalType</span></span><span class="p"><span class="hl">(</span></span><span class="n"><span class="hl">clang_getC</span>ursorType</span><span class="p">(</span><span class="n">cursor</span><span class="p">)<span class="hl">)</span>;</span></pre></td>
  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">unrelated?</p></pre>
 </div>
</div>
<br />



<p>- Milian Wolff</p>


<br />
<p>On January 5th, 2015, 3:13 p.m. UTC, Olivier Jean de Gaalon wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDevelop, Kevin Funk and Milian Wolff.</div>
<div>By Olivier Jean de Gaalon.</div>


<p style="color: grey;"><i>Updated Jan. 5, 2015, 3:13 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdev-clang
</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Note: This requires IBuildSystemManager::hasIncludesOrDefines, which should probably be renamed to isTranslationUnit()</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The idea here is to use the AST of the buildsystem's translation units wherever possible, since that's the only file that's guaranteed to have correct defines and includes (and furthermore can handle strange cases such as '#include inside namespace' and picky include/define ordering).
This proposal essentially allows TU environments to override non-TU environments and then get "pinned" so that the non-TU will continue to use the TU AST to build its duchain.
This could eventually be exposed in the UI, allowing the user to pick different "views" of headers (overriding the pinned TU).
The pinning data needs to be fleshed out to handle expiry (header no longer included) and be serialized with an ItemRepository.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'm looking for feedback on this idea... where does it break? Any better ideas?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This more or less works, we can flesh it out more if we want to take this route.</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Tests fail in the same manner as before</p></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>tests/clang-parser.cpp <span style="color: grey">(3f87d05)</span></li>

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

 <li>duchain/tuduchain.cpp <span style="color: grey">(33a0570)</span></li>

 <li>duchain/clangindex.cpp <span style="color: grey">(02c93cf)</span></li>

 <li>duchain/clangparsingenvironment.h <span style="color: grey">(7bb8111)</span></li>

 <li>duchain/clangparsingenvironment.cpp <span style="color: grey">(1decc14)</span></li>

 <li>duchain/clangparsingenvironmentfile.h <span style="color: grey">(953ee94)</span></li>

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

 <li>duchain/clangpch.cpp <span style="color: grey">(1ce3457)</span></li>

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

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

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

 <li>tests/test_duchain.cpp <span style="color: grey">(7db9fea)</span></li>

 <li>tests/test_problems.cpp <span style="color: grey">(09018d1)</span></li>

 <li>clangparsejob.h <span style="color: grey">(1cc8282)</span></li>

 <li>clangparsejob.cpp <span style="color: grey">(297b836)</span></li>

 <li>codecompletion/completionhelper.cpp <span style="color: grey">(f5ed2b9)</span></li>

 <li>codecompletion/context.cpp <span style="color: grey">(33c3391)</span></li>

 <li>codegen/clangsignatureassistant.cpp <span style="color: grey">(9ea1f5b)</span></li>

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

 <li>duchain/clanghelpers.cpp <span style="color: grey">(5f29a2a)</span></li>

 <li>duchain/clangindex.h <span style="color: grey">(991c7ca)</span></li>

</ul>

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



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments </h1>


 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/01/02/5c0314bf-f241-4ad0-93f6-9a0a48a79135__kdevelop-hasincordef.diff">kdevelop patch</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/01/02/edc11881-06c6-4570-9afd-824a99687116__kdevplatform-hasincordef.diff">platform patch</a></li>

</ul>




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








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