summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2021-03-01 10:23:59 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-03-03 15:01:16 +0000
commitec34177c088a18a6ad0f8eb4a69fcdd662e6afee (patch)
tree020a38ddba640cc8d9667d25aa0e15d855334bb2
parent6d1dc3457bd7c5af46aca9f46fb43e9f300dd657 (diff)
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 <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 25ae86d1d98dbf3900eefea152b072939be8ea71) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--tests/auto/qml/qmllint/data/var.qml9
-rw-r--r--tests/auto/qml/qmllint/tst_qmllint.cpp1
-rw-r--r--tools/qmllint/checkidentifiers.cpp5
3 files changed, 14 insertions, 1 deletions
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(