Commit 54425fbd authored by Martin Smith's avatar Martin Smith
Browse files

qdoc: fix resolve inheritance bug


clangqdoc was unable to find base class nodes,
when the base class node was in a different module
from the subclass. This was mostly because the
fixInheritance() function, which handles base class
resolution after the headers have been parsed, was
being called before the headers were parsed. This
was caused by the new parsing strategy for clangqdoc,
which is to use the old loop where qdoc used to parse
the header files only to build up a list of all the
required header files and to delay parsing the header
files until clang is called to build the PCH.

The basic fix is to mode the call to resolveInheritance()
from main.cpp into clangcodeparser.cpp right after the
PCH is built. There are also a few other minor changes
in this change that make the base class resolution more
robust by ensuring that as much useful information as
possible is retained in the index file and in the base
class list for a class node.

Change-Id: I51433f618cdf40b37b0687ff1686da03359de111
Reviewed-by: default avatarTopi Reiniö <topi.reinio@qt.io>
Showing with 12 additions and 3 deletions
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment