From 05372137d19e3ac5f49f6a0072dbbd9b53e25005 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sat, 26 Dec 2020 20:52:00 +0100 Subject: Avoid "Internal inconsistency" warnings for scoped enums Can happen if they appear in an undocumented namespace. --- src/doxygen.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 709b6f1..3472f8f 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -7131,9 +7131,13 @@ static void addEnumValuesToEnums(const Entry *root) e->type,e->name,e->args,0, e->protection, Normal,e->stat,Member, MemberType_EnumValue,ArgumentList(),ArgumentList(),e->metaData) }; - if (md->getClassDef()) fmd->setMemberClass(md->getClassDef()); - else if (md->getNamespaceDef()) fmd->setNamespace(md->getNamespaceDef()); - else if (md->getFileDef()) fmd->setFileDef(md->getFileDef()); + const NamespaceDef *mnd = md->getNamespaceDef(); + if (md->getClassDef()) + fmd->setMemberClass(md->getClassDef()); + else if (mnd && (mnd->isLinkable() || mnd->isAnonymous())) + fmd->setNamespace(mnd); + else if (md->getFileDef()) + fmd->setFileDef(md->getFileDef()); fmd->setOuterScope(md->getOuterScope()); fmd->setTagInfo(e->tagInfo()); fmd->setLanguage(e->lang); -- cgit v0.12