From f74d278994d35a3ac154ddd411009a785dd46800 Mon Sep 17 00:00:00 2001 From: Maximilian Goldstein Date: Fri, 12 Feb 2021 11:32:53 +0100 Subject: qmllint: Fix false unknown grouped property warning We seem to be checking grouped properties twice by endVisit(UiObjectBinding*) and endVisit(UiObjectDefinition*). So the UiObjectBinding variant is removed here as this gets run before all type information is available. Change-Id: Idfe23869792f787df6109cde3b6bc1d96cce3dc3 Reviewed-by: Fabian Kosmale (cherry picked from commit 4660f51f25a6c56182dff0ea24f7c1ad2bac9cea) --- tests/auto/qml/qmllint/data/groupedScope.qml | 7 +++++++ tests/auto/qml/qmllint/tst_qmllint.cpp | 1 + tools/qmllint/findwarnings.cpp | 8 -------- tools/qmllint/findwarnings.h | 1 - 4 files changed, 8 insertions(+), 9 deletions(-) create mode 100644 tests/auto/qml/qmllint/data/groupedScope.qml diff --git a/tests/auto/qml/qmllint/data/groupedScope.qml b/tests/auto/qml/qmllint/data/groupedScope.qml new file mode 100644 index 0000000000..40f9b41be8 --- /dev/null +++ b/tests/auto/qml/qmllint/data/groupedScope.qml @@ -0,0 +1,7 @@ +import QtQuick 2.0 + +Rectangle { + border.width: 1 + + gradient: Gradient {} +} diff --git a/tests/auto/qml/qmllint/tst_qmllint.cpp b/tests/auto/qml/qmllint/tst_qmllint.cpp index 54e0adee51..8a07391ed0 100644 --- a/tests/auto/qml/qmllint/tst_qmllint.cpp +++ b/tests/auto/qml/qmllint/tst_qmllint.cpp @@ -364,6 +364,7 @@ void TestQmllint::cleanQmlCode_data() QTest::newRow("overridescript") << QStringLiteral("overridescript.qml"); QTest::newRow("multiExtension") << QStringLiteral("multiExtension.qml"); QTest::newRow("segFault") << QStringLiteral("SegFault.qml"); + QTest::newRow("grouped scope failure") << QStringLiteral("groupedScope.qml"); } void TestQmllint::cleanQmlCode() diff --git a/tools/qmllint/findwarnings.cpp b/tools/qmllint/findwarnings.cpp index 17e73c770c..110f6d4627 100644 --- a/tools/qmllint/findwarnings.cpp +++ b/tools/qmllint/findwarnings.cpp @@ -404,14 +404,6 @@ bool FindWarningVisitor::visit(QQmlJS::AST::UiObjectBinding *uiob) return true; } -void FindWarningVisitor::endVisit(QQmlJS::AST::UiObjectBinding *uiob) -{ - QQmlJSImportVisitor::endVisit(uiob); - - if (m_warnUnqualified) - checkGroupedScopes(m_currentScope); -} - bool FindWarningVisitor::visit(QQmlJS::AST::UiObjectDefinition *uiod) { using namespace QQmlJS::AST; diff --git a/tools/qmllint/findwarnings.h b/tools/qmllint/findwarnings.h index 96cd0c3897..138f83098d 100644 --- a/tools/qmllint/findwarnings.h +++ b/tools/qmllint/findwarnings.h @@ -109,7 +109,6 @@ private: /* --- end block handling --- */ bool visit(QQmlJS::AST::UiObjectBinding *uiob) override; - void endVisit(QQmlJS::AST::UiObjectBinding *uiob) override; bool visit(QQmlJS::AST::UiObjectDefinition *uiod) override; void endVisit(QQmlJS::AST::UiObjectDefinition *) override; bool visit(QQmlJS::AST::UiScriptBinding *uisb) override; -- cgit v1.2.3