summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoel Standaert <roel@abittechnical.com>2019-12-03 23:32:28 (GMT)
committerRoel Standaert <roel@abittechnical.com>2019-12-03 23:32:28 (GMT)
commita2f09d6aae1260822fecf2f0de9c1d3fbcc312e7 (patch)
tree082d377825d1167bfa8bc9a92e820c5a3f897e9e
parent3bda58a7b7b4f9094c2fcb2bad71c7174367605e (diff)
downloadDoxygen-a2f09d6aae1260822fecf2f0de9c1d3fbcc312e7.zip
Doxygen-a2f09d6aae1260822fecf2f0de9c1d3fbcc312e7.tar.gz
Doxygen-a2f09d6aae1260822fecf2f0de9c1d3fbcc312e7.tar.bz2
Fix incorrect reference resolving of enum class values
When they share enum value names inside the same namespace. This is a proposed fix for issue #7427: "Incorrect resolving of references to enum class values with shared names inside the same namespace"
-rw-r--r--src/util.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/util.cpp b/src/util.cpp
index 5868b62..570a09c 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -4283,7 +4283,7 @@ bool getDefs(const QCString &scName,
int ni=namespaceName.findRev("::");
//printf("namespaceName=%s ni=%d\n",namespaceName.data(),ni);
bool notInNS = tmd && ni==-1 && tmd->getNamespaceDef()==0 && (mScope.isEmpty() || mScope==tmd->name());
- bool sameNS = tmd && tmd->getNamespaceDef() && namespaceName.left(ni)==tmd->getNamespaceDef()->name();
+ bool sameNS = tmd && tmd->getNamespaceDef() && namespaceName.left(ni)==tmd->getNamespaceDef()->name() && namespaceName.mid(ni+2)==tmd->name();
//printf("notInNS=%d sameNS=%d\n",notInNS,sameNS);
if (tmd && tmd->isStrong() && // C++11 enum class
(notInNS || sameNS) &&