diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-04-09 18:43:43 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-04-15 13:42:45 +0200 |
commit | e9d2bbdcb0b314e73606992787681586ab7c1e9b (patch) | |
tree | 9152ce6eed482a5ecacc3da5c1a09f12f659a95c /tools/qmllint/findunqualified.cpp | |
parent | 32e03a72339e9ffbbe27b0a0fde747dafc8568ee (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.cpp | 19 |
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 ¶m : 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 ¶m : method->parameterNames()) { + const auto firstSourceLocation = statement->firstSourceLocation(); + bool hasMultilineStatementBody + = statement->lastSourceLocation().startLine > firstSourceLocation.startLine; + m_currentScope->insertSignalIdentifier(param, *method, firstSourceLocation, + hasMultilineStatementBody); + } } return true; } |