From b69864da59c42a09a3acc373eb77a85f8f8c93b2 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 27 Apr 2010 12:58:21 +1000 Subject: Disallow "Qt" as namespace import This conflicts with the global object's "Qt" property. QTBUG-10143 --- src/declarative/qml/qdeclarativescriptparser.cpp | 8 ++++++++ .../declarative/qdeclarativelanguage/data/assignToNamespace.qml | 6 +++--- .../qdeclarativelanguage/data/dynamicObjectProperties.qml | 2 +- .../data/lib/com/nokia/installedtest/InstalledTest.qml | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/declarative/qml/qdeclarativescriptparser.cpp b/src/declarative/qml/qdeclarativescriptparser.cpp index e7c8a12..8b96733 100644 --- a/src/declarative/qml/qdeclarativescriptparser.cpp +++ b/src/declarative/qml/qdeclarativescriptparser.cpp @@ -449,6 +449,14 @@ bool ProcessAST::visit(AST::UiImport *node) _parser->_errors << error; return false; } + if (import.qualifier == QLatin1String("Qt")) { + QDeclarativeError error; + error.setDescription(QCoreApplication::translate("QDeclarativeParser","Reserved name \"Qt\" cannot be used as an qualifier")); + error.setLine(node->importIdToken.startLine); + error.setColumn(node->importIdToken.startColumn); + _parser->_errors << error; + return false; + } // Check for script qualifier clashes bool isScript = import.type == QDeclarativeScriptParser::Import::Script; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml index 8eb9768..2f49418 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml @@ -1,5 +1,5 @@ -import Qt 4.7 as Qt +import Qt 4.7 as Qt47 -Qt.QtObject { - Qt: 10 +Qt47.QtObject { + Qt47: 10 } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml index e870046..c997356 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml @@ -1,6 +1,6 @@ import Test 1.0 import Qt 4.7 -import Qt 4.7 as Qt +import Qt 4.7 as Qt47 QtObject { property QtObject objectProperty diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml index 6d33361..303b5a5 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml @@ -1,2 +1,2 @@ -import Qt 4.7 as Qt -Qt.Rectangle {} +import Qt 4.7 as Qt47 +Qt47.Rectangle {} -- cgit v0.12