<p>This is far from perfect and contains a lot of guessing.  It showed<br>
good results based on our tests cases, fixing several issues and not<br>
introducing any more issues (admittedly, after working around a subtle<br>
one regarding D static ifs).</p>

<p>Closes <a href="https://github.com/geany/geany/issues/845" class="issue-link js-issue-link" data-url="https://github.com/geany/geany/issues/845" data-id="124535838" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#845</a>.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/geany/geany/pull/889'>https://github.com/geany/geany/pull/889</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>C, C++, C#, D: Improve return type and var type recognition</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-0">tagmanager/ctags/c.c</a>
    (70)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-1">tests/ctags/Makefile.am</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-2">tests/ctags/bit_field.c.tags</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-3">tests/ctags/bug1799340.cpp.tags</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-4">tests/ctags/bug1907083.cpp.tags</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-5">tests/ctags/bug1924919.cpp.tags</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-6">tests/ctags/c-digraphs.c.tags</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-7">tests/ctags/c-trigraphs.c.tags</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-8">tests/ctags/indexer.cs.tags</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-9">tests/ctags/interface_indexers.cs.tags</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-10">tests/ctags/keyword_const.cs.tags</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-11">tests/ctags/keyword_virtual.cs.tags</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-12">tests/ctags/keyword_volatile.cs.tags</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-13">tests/ctags/simple.d.tags</a>
    (2)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-14">tests/ctags/var-and-return-type.cpp</a>
    (40)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/889/files#diff-15">tests/ctags/var-and-return-type.cpp.tags</a>
    (20)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/geany/geany/pull/889.patch'>https://github.com/geany/geany/pull/889.patch</a></li>
  <li><a href='https://github.com/geany/geany/pull/889.diff'>https://github.com/geany/geany/pull/889.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany/pull/889">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJyzBYJOaJtEOjcUj8DfAGLAMcGm2ks5pd4Z-gaJpZM4HMkrH.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/pull/889"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>