diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2022-05-20 14:00:34 +0200 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2022-05-20 16:10:29 +0200 |
commit | 369c45beb5002e4e90e2fb3e3fe6fe0194307dad (patch) | |
tree | 83c2bf8179cf454ad1971e697e1b2cd2e2e85957 | |
parent | 2f94d1686b0174fd36cfaa71849c1453e87452e8 (diff) |
qqmljsimportvisitor: Fix binding source locations
We need them to be like this in order for our comparisons with IR output
to work.
Change-Id: If49faf015efbf0da0faabe9e01a2942cedea5b48
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
-rw-r--r-- | src/qmlcompiler/qqmljsimportvisitor.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/qmlcompiler/qqmljsimportvisitor.cpp b/src/qmlcompiler/qqmljsimportvisitor.cpp index 612cc66b15..b39e004cd6 100644 --- a/src/qmlcompiler/qqmljsimportvisitor.cpp +++ b/src/qmlcompiler/qqmljsimportvisitor.cpp @@ -1685,7 +1685,13 @@ QQmlJSImportVisitor::parseLiteralOrScriptBinding(const QString name, const auto *exprStatement = cast<const ExpressionStatement *>(statement); if (exprStatement == nullptr) { - QQmlJSMetaPropertyBinding binding(statement->firstSourceLocation(), name); + QQmlJS::SourceLocation location = statement->firstSourceLocation(); + + if (const auto *block = cast<const Block *>(statement); block && block->statements) { + location = block->statements->firstSourceLocation(); + } + + QQmlJSMetaPropertyBinding binding(location, name); binding.setScriptBinding(addFunctionOrExpression(m_currentScope, name), QQmlJSMetaPropertyBinding::Script_PropertyBinding); m_currentScope->addOwnPropertyBinding(binding); |