@@ -3892,6 +3892,8 @@ void SymbolDatabase::printXml(std::ostream &out) const
38923892 out << " nestedIn=\" " << scope->nestedIn << " \" " ;
38933893 if (scope->function )
38943894 out << " function=\" " << scope->function << " \" " ;
3895+ if (scope->definedType )
3896+ out << " definedType=\" " << scope->definedType << " \" " ;
38953897 if (scope->functionList .empty () && scope->varlist .empty ())
38963898 out << " />" << std::endl;
38973899 else {
@@ -3921,6 +3923,8 @@ void SymbolDatabase::printXml(std::ostream &out) const
39213923 out << " isInlineKeyword=\" true\" " ;
39223924 if (function->isStatic ())
39233925 out << " isStatic=\" true\" " ;
3926+ if (const Function* overriddenFunction = function->getOverriddenFunction ())
3927+ out << " overriddenFunction=\" " << overriddenFunction << " \" " ;
39243928 if (function->argCount () == 0U )
39253929 out << " />" << std::endl;
39263930 else {
@@ -3946,6 +3950,27 @@ void SymbolDatabase::printXml(std::ostream &out) const
39463950 }
39473951 out << " </scopes>" << std::endl;
39483952
3953+ if (!typeList.empty ()) {
3954+ out << " <types>\n " ;
3955+ for (const Type& type:typeList) {
3956+ out << " <type id=\" " << &type << " \" classScope=\" " << type.classScope << " \" " ;
3957+ if (type.derivedFrom .empty ()) {
3958+ out << " />\n " ;
3959+ continue ;
3960+ }
3961+ out << " >\n " ;
3962+ for (const Type::BaseInfo& baseInfo: type.derivedFrom ) {
3963+ out << " <derivedFrom"
3964+ << " access=\" " << accessControlToString (baseInfo.access ) << " \" "
3965+ << " type=\" " << baseInfo.type << " \" "
3966+ << " isVirtual=\" " << (baseInfo.isVirtual ? " true" : " false" ) << " \" "
3967+ << " />\n " ;
3968+ }
3969+ out << " </type>\n " ;
3970+ }
3971+ out << " </types>\n " ;
3972+ }
3973+
39493974 // Variables..
39503975 for (const Variable *var : mVariableList )
39513976 variables.insert (var);
0 commit comments