ClangCodeModel: Classify Q_PROPERTY functions as Qt-invokable

Fixes: QTCREATORBUG-28971
Change-Id: Ia60a82aa83ad89fbf6b5d1332d413de029510b34
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2023-04-12 18:12:58 +02:00
parent 8a0b3815df
commit f67f02066c
3 changed files with 28 additions and 0 deletions

View File

@@ -595,6 +595,19 @@ static Usage::Tags getUsageType(const ClangdAstPath &path, const QString &search
tags |= Usage::Tag::Operator;
}
}
if (pathIt->kind() == "CXXMethod") {
const ClangdAstNode &classNode = *std::next(pathIt);
if (classNode.hasChild([&](const ClangdAstNode &n) {
if (n.kind() != "StaticAssert")
return false;
return n.hasChild([&](const ClangdAstNode &n) {
return n.arcanaContains("Q_PROPERTY"); }, true)
&& n.hasChild([&](const ClangdAstNode &n) {
return n.arcanaContains(" " + searchTerm); }, true);
}, false)) {
tags |= Usage::Tag::MocInvokable;
}
}
return tags;
}
if (pathIt->kind() == "MemberInitializer")