aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-02-12 14:35:48 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-02-16 14:44:48 +0000
commit04c16d7c1e06d6bfc33c61e7fda0c59e45c4daaa (patch)
tree33e9d642de6db48065894cdb6be55ca7e7973acf /src
parentc0775e9a9cfb9541fc61d788516cfc635338b4f8 (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.cpp27
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 *)