@@ -8984,6 +8984,7 @@ static void countMembers()
89848984
89858985static void generateDocsForClassList (const std::vector<ClassDefMutable*> &classList)
89868986{
8987+ AUTO_TRACE ();
89878988 std::size_t numThreads = static_cast <std::size_t >(Config_getInt (NUM_PROC_THREADS));
89888989 if (numThreads>1 ) // multi threaded processing
89898990 {
@@ -9000,7 +9001,7 @@ static void generateDocsForClassList(const std::vector<ClassDefMutable*> &classL
90009001 {
90019002 // printf("cd=%s getOuterScope=%p global=%p\n",qPrint(cd->name()),cd->getOuterScope(),Doxygen::globalScope);
90029003 if (cd->getOuterScope ()==nullptr || // <-- should not happen, but can if we read an old tag file
9003- cd->getOuterScope ()==Doxygen::globalScope // only look at global classes
9004+ cd->getOuterScope ()==Doxygen::globalScope // only look at global classes
90049005 )
90059006 {
90069007 auto ctx = std::make_shared<DocContext>(cd,*g_outputList);
@@ -9011,7 +9012,7 @@ static void generateDocsForClassList(const std::vector<ClassDefMutable*> &classL
90119012 // skip external references, anonymous compounds and
90129013 // template instances
90139014 if (!ctx->cd ->isHidden () && !ctx->cd ->isEmbeddedInOuterScope () &&
9014- ctx->cd ->isLinkableInProject () && ctx->cd ->templateMaster ()== nullptr )
9015+ ctx->cd ->isLinkableInProject () && ! ctx->cd ->isImplicitTemplateInstance () )
90159016 {
90169017 ctx->cd ->writeDocumentation (ctx->ol );
90179018 ctx->cd ->writeMemberList (ctx->ol );
@@ -9042,7 +9043,7 @@ static void generateDocsForClassList(const std::vector<ClassDefMutable*> &classL
90429043 // skip external references, anonymous compounds and
90439044 // template instances
90449045 if ( !cd->isHidden () && !cd->isEmbeddedInOuterScope () &&
9045- cd->isLinkableInProject () && cd->templateMaster ()== nullptr )
9046+ cd->isLinkableInProject () && ! cd->isImplicitTemplateInstance () )
90469047 {
90479048 msg (" Generating docs for compound %s...\n " ,qPrint (cd->displayName ()));
90489049
@@ -9062,7 +9063,13 @@ static void addClassAndNestedClasses(std::vector<ClassDefMutable*> &list,ClassDe
90629063 for (const auto &innerCdi : cd->getClasses ())
90639064 {
90649065 ClassDefMutable *innerCd = toClassDefMutable (innerCdi);
9065- if (innerCd && innerCd->isLinkableInProject () && innerCd->templateMaster ()==nullptr &&
9066+ if (innerCd)
9067+ {
9068+ AUTO_TRACE (" innerCd={} isLinkable={} isImplicitTemplateInstance={} protectLevelVisible={} embeddedInOuterScope={}" ,
9069+ innerCd->name (),innerCd->isLinkableInProject (),innerCd->isImplicitTemplateInstance (),protectionLevelVisible (innerCd->protection ()),
9070+ innerCd->isEmbeddedInOuterScope ());
9071+ }
9072+ if (innerCd && innerCd->isLinkableInProject () && !innerCd->isImplicitTemplateInstance () &&
90669073 protectionLevelVisible (innerCd->protection ()) &&
90679074 !innerCd->isEmbeddedInOuterScope ()
90689075 )
@@ -10017,7 +10024,7 @@ static void generateNamespaceClassDocs(const ClassLinkedRefMap &classList)
1001710024 auto processFile = [ctx]()
1001810025 {
1001910026 if ( ( ctx->cdm ->isLinkableInProject () &&
10020- ctx->cdm ->templateMaster ()== nullptr
10027+ ! ctx->cdm ->isImplicitTemplateInstance ()
1002110028 ) // skip external references, anonymous compounds and
1002210029 // template instances and nested classes
1002310030 && !ctx->cdm ->isHidden () && !ctx->cdm ->isEmbeddedInOuterScope ()
@@ -10048,7 +10055,7 @@ static void generateNamespaceClassDocs(const ClassLinkedRefMap &classList)
1004810055 if (cdm)
1004910056 {
1005010057 if ( ( cd->isLinkableInProject () &&
10051- cd->templateMaster ()== nullptr
10058+ ! cd->isImplicitTemplateInstance ()
1005210059 ) // skip external references, anonymous compounds and
1005310060 // template instances and nested classes
1005410061 && !cd->isHidden () && !cd->isEmbeddedInOuterScope ()
0 commit comments