diff options
Diffstat (limited to 'src/qdoc/tree.cpp')
-rw-r--r-- | src/qdoc/tree.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/qdoc/tree.cpp b/src/qdoc/tree.cpp index 138798d20..9d220d9d7 100644 --- a/src/qdoc/tree.cpp +++ b/src/qdoc/tree.cpp @@ -595,7 +595,7 @@ const Node *Tree::matchPathAndTarget(const QStringList &path, int idx, const QSt NodeVector nodes; static_cast<const Aggregate *>(node)->findChildren(name, nodes); for (const auto *node : qAsConst(nodes)) { - if (genus != Node::DontCare && node->genus() != genus) + if (genus != Node::DontCare && !(genus & node->genus())) continue; const Node *t = matchPathAndTarget(path, idx + 1, target, node, flags, genus, ref); if (t && !t->isPrivate()) @@ -830,7 +830,7 @@ const Node *Tree::findUnambiguousTarget(const QString &target, Node::Genus genus if (it.key() != key) break; TargetRec *candidate = it.value(); - if ((genus == Node::DontCare) || (genus == candidate->genus())) { + if ((genus == Node::DontCare) || (genus & candidate->genus())) { if (!bestTarget || (candidate->priority_ < bestTarget->priority_)) { bestTarget = candidate; bestTargetList.clear(); @@ -854,7 +854,7 @@ const Node *Tree::findUnambiguousTarget(const QString &target, Node::Genus genus if (it.key() != key) break; TargetRec *candidate = it.value(); - if ((genus == Node::DontCare) || (genus == candidate->genus())) { + if ((genus == Node::DontCare) || (genus & candidate->genus())) { if (!bestTarget || (candidate->priority_ < bestTarget->priority_)) { bestTarget = candidate; bestTargetList.clear(); @@ -1216,7 +1216,7 @@ const FunctionNode *Tree::findFunctionNode(const QStringList &path, const Parame if (relative == nullptr) relative = root(); else if (genus != Node::DontCare) { - if (genus != relative->genus()) + if (!(genus & relative->genus())) relative = root(); } |