From 25ae86d1d98dbf3900eefea152b072939be8ea71 Mon Sep 17 00:00:00 2001 From: Maximilian Goldstein Date: Mon, 1 Mar 2021 10:23:59 +0100 Subject: qmllint: Fix unknown properties on var Since the type of a var may change at runtime and we thus can't make any good predicitons on its actual underlying type we will ignore it from now on (as already done for variants). Fixes: QTBUG-84060 Pick-to: 6.1 Change-Id: I36795ef2047629d3c870bf8a9df59dcd3db06633 Reviewed-by: Fabian Kosmale Reviewed-by: Ulf Hermann --- tests/auto/qml/qmllint/data/var.qml | 9 +++++++++ tests/auto/qml/qmllint/tst_qmllint.cpp | 1 + tools/qmllint/checkidentifiers.cpp | 5 ++++- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tests/auto/qml/qmllint/data/var.qml diff --git a/tests/auto/qml/qmllint/data/var.qml b/tests/auto/qml/qmllint/data/var.qml new file mode 100644 index 0000000000..617d6873d9 --- /dev/null +++ b/tests/auto/qml/qmllint/data/var.qml @@ -0,0 +1,9 @@ +import QtQml + +QtObject { + readonly property variant x: [0] + readonly property var y: [0] + + readonly property int lenX: x.length + readonly property int lenY: y.length +} diff --git a/tests/auto/qml/qmllint/tst_qmllint.cpp b/tests/auto/qml/qmllint/tst_qmllint.cpp index eaf4fc8a14..da143caf9f 100644 --- a/tests/auto/qml/qmllint/tst_qmllint.cpp +++ b/tests/auto/qml/qmllint/tst_qmllint.cpp @@ -395,6 +395,7 @@ void TestQmllint::cleanQmlCode_data() QTest::newRow("enumProperty") << QStringLiteral("enumProperty.qml"); QTest::newRow("externalEnumProperty") << QStringLiteral("externalEnumProperty.qml"); QTest::newRow("shapes") << QStringLiteral("shapes.qml"); + QTest::newRow("var") << QStringLiteral("var.qml"); } void TestQmllint::cleanQmlCode() diff --git a/tools/qmllint/checkidentifiers.cpp b/tools/qmllint/checkidentifiers.cpp index b41b68b719..b0c56bcec6 100644 --- a/tools/qmllint/checkidentifiers.cpp +++ b/tools/qmllint/checkidentifiers.cpp @@ -58,7 +58,10 @@ private: static const QStringList unknownBuiltins = { QStringLiteral("alias"), // TODO: we cannot properly resolve aliases, yet QStringLiteral("QJSValue"), // We cannot say anything intelligent about untyped JS values. - QStringLiteral("variant"), // Same for generic variants + + // Same for generic variants + QStringLiteral("variant"), + QStringLiteral("var") }; void CheckIdentifiers::printContext( -- cgit v1.2.3