diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-02-12 14:35:48 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-02-16 14:44:48 +0000 |
commit | 04c16d7c1e06d6bfc33c61e7fda0c59e45c4daaa (patch) | |
tree | 33e9d642de6db48065894cdb6be55ca7e7973acf /src | |
parent | c0775e9a9cfb9541fc61d788516cfc635338b4f8 (diff) |
qmllint: Don't create properties for "on" assignments
"on" assignments are assignments to the default property, with the
property given interpreted as the target for the inner object.
Change-Id: Ia93a171f759964d2c00d6c0293a5434f588123af
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 67c8afff346eae27c6fb833661d179326dd8b153)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/qmlcompiler/qqmljsimportvisitor.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/qmlcompiler/qqmljsimportvisitor.cpp b/src/qmlcompiler/qqmljsimportvisitor.cpp index 5d858229dd..a1de41e3ca 100644 --- a/src/qmlcompiler/qqmljsimportvisitor.cpp +++ b/src/qmlcompiler/qqmljsimportvisitor.cpp @@ -470,21 +470,22 @@ bool QQmlJSImportVisitor::visit(QQmlJS::AST::FormalParameterList *fpl) bool QQmlJSImportVisitor::visit(QQmlJS::AST::UiObjectBinding *uiob) { // property QtObject __styleData: QtObject {...} - QString name; for (auto id = uiob->qualifiedTypeNameId; id; id = id->next) name += id->name.toString() + QLatin1Char('.'); name.chop(1); - QQmlJSMetaProperty prop; - prop.setPropertyName(uiob->qualifiedId->name.toString()); - prop.setTypeName(name); - prop.setIsWritable(true); - prop.setIsPointer(true); - prop.setIsAlias(name == QLatin1String("alias")); - prop.setType(m_rootScopeImports.value(uiob->qualifiedTypeNameId->name.toString())); - m_currentScope->addOwnProperty(prop); + if (!uiob->hasOnToken) { + QQmlJSMetaProperty prop; + prop.setPropertyName(uiob->qualifiedId->name.toString()); + prop.setTypeName(name); + prop.setIsWritable(true); + prop.setIsPointer(true); + prop.setIsAlias(name == QLatin1String("alias")); + prop.setType(m_rootScopeImports.value(uiob->qualifiedTypeNameId->name.toString())); + m_currentScope->addOwnProperty(prop); + } enterEnvironment(QQmlJSScope::QMLScope, name, uiob->qualifiedTypeNameId ? uiob->qualifiedTypeNameId->identifierToken @@ -500,9 +501,11 @@ void QQmlJSImportVisitor::endVisit(QQmlJS::AST::UiObjectBinding *uiob) const QQmlJSScope::ConstPtr childScope = m_currentScope; leaveEnvironment(); - QQmlJSMetaProperty property = m_currentScope->property(uiob->qualifiedId->name.toString()); - property.setType(childScope); - m_currentScope->addOwnProperty(property); + if (!uiob->hasOnToken) { + QQmlJSMetaProperty property = m_currentScope->property(uiob->qualifiedId->name.toString()); + property.setType(childScope); + m_currentScope->addOwnProperty(property); + } } bool QQmlJSImportVisitor::visit(ExportDeclaration *) |