https://bugs.gentoo.org/966843
https://github.com/wxWidgets/Phoenix/issues/2820
https://github.com/doxygen/doxygen/issues/11889
https://github.com/doxygen/doxygen/commit/148e93969da016a8d8ecf1fcdb9fcf045471d688

From 148e93969da016a8d8ecf1fcdb9fcf045471d688 Mon Sep 17 00:00:00 2001
From: Blake Batson <bbatson101@gmail.com>
Date: Wed, 10 Dec 2025 20:43:32 -0500
Subject: [PATCH] Fix duplicate type names

---
 src/util.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/util.cpp b/src/util.cpp
index 89e49d9aff1..ddb4829117c 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -979,6 +979,7 @@ void linkifyText(const TextGeneratorIntf &out, const Definition *scope,
     {
       const ClassDef     *cd=nullptr;
       const ConceptDef   *cnd=nullptr;
+      const Definition   *d=nullptr;
       //printf("** Match word '%s'\n",qPrint(matchWord));
 
       SymbolResolver resolver(fileScope);
@@ -1010,7 +1011,12 @@ void linkifyText(const TextGeneratorIntf &out, const Definition *scope,
           }
         }
       };
-      if ((cd=getClass(matchWord)))
+
+      if (found)
+      {
+        //printf("   -> skip\n");
+      }
+      else if ((cd=getClass(matchWord)))
       {
         writeCompoundName(cd);
       }
@@ -1022,7 +1028,7 @@ void linkifyText(const TextGeneratorIntf &out, const Definition *scope,
       {
         writeCompoundName(cnd);
       }
-      else if (const Definition *d=nullptr; cd==nullptr && !found && (d=resolver.resolveSymbol(scope,matchWord)))
+      else if ((d=resolver.resolveSymbol(scope,matchWord)))
       {
         writeCompoundName(d);
       }

