aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmllint/findunqualified.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-04-09 18:43:43 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-04-15 13:42:45 +0200
commite9d2bbdcb0b314e73606992787681586ab7c1e9b (patch)
tree9152ce6eed482a5ecacc3da5c1a09f12f659a95c /tools/qmllint/findunqualified.cpp
parent32e03a72339e9ffbbe27b0a0fde747dafc8568ee (diff)
ScopeTree: Make methods a QMultiHash
You can have multiple overloads with the same name. Change-Id: Ifffcc634e96b41f99152092b72b61dad64713b23 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tools/qmllint/findunqualified.cpp')
-rw-r--r--tools/qmllint/findunqualified.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/tools/qmllint/findunqualified.cpp b/tools/qmllint/findunqualified.cpp
index 604cf49122..77d7d487fc 100644
--- a/tools/qmllint/findunqualified.cpp
+++ b/tools/qmllint/findunqualified.cpp
@@ -627,13 +627,18 @@ bool FindUnqualifiedIDVisitor::visit(QQmlJS::AST::UiScriptBinding *uisb)
}
}
- auto method = m_currentScope->methods()[signal];
- for (auto const &param : method.parameterNames()) {
- const auto firstSourceLocation = statement->firstSourceLocation();
- bool hasMultilineStatementBody
- = statement->lastSourceLocation().startLine > firstSourceLocation.startLine;
- m_currentScope->insertSignalIdentifier(param, method, firstSourceLocation,
- hasMultilineStatementBody);
+ const auto methods = m_currentScope->methods();
+ const auto methodsRange = methods.equal_range(signal);
+ for (auto method = methodsRange.first; method != methodsRange.second; ++method) {
+ if (method->methodType() != MetaMethod::Signal)
+ continue;
+ for (auto const &param : method->parameterNames()) {
+ const auto firstSourceLocation = statement->firstSourceLocation();
+ bool hasMultilineStatementBody
+ = statement->lastSourceLocation().startLine > firstSourceLocation.startLine;
+ m_currentScope->insertSignalIdentifier(param, *method, firstSourceLocation,
+ hasMultilineStatementBody);
+ }
}
return true;
}