From ec34177c088a18a6ad0f8eb4a69fcdd662e6afee 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 Change-Id: I36795ef2047629d3c870bf8a9df59dcd3db06633 Reviewed-by: Fabian Kosmale Reviewed-by: Ulf Hermann (cherry picked from commit 25ae86d1d98dbf3900eefea152b072939be8ea71) Reviewed-by: Qt Cherry-pick Bot --- 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 22e3004db1..ca2258dfeb 100644 --- a/tests/auto/qml/qmllint/tst_qmllint.cpp +++ b/tests/auto/qml/qmllint/tst_qmllint.cpp @@ -384,6 +384,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