aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-12-04 15:09:25 +0100
committerUlf Hermann <ulf.hermann@qt.io>2020-12-05 21:48:48 +0100
commitd260e713bdf6a61e49a0944df875bead5b8c46b0 (patch)
treedd709231b06c3d909e135125ea39f0293a788148 /tools
parentd297723fe6b8ebad6c87d0e47dc795e8e48943a4 (diff)
QmlCompiler: Don't add imports with "as" to the context
That is wrong. The context does not contain such objects. Instead, mark the names as namespaces in the imports by giving them an empty type. Change-Id: Ie9d0bba592863878d2220cee59be369ba2534f17 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmllint/checkidentifiers.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/qmllint/checkidentifiers.cpp b/tools/qmllint/checkidentifiers.cpp
index 6500595c83..b718f0f691 100644
--- a/tools/qmllint/checkidentifiers.cpp
+++ b/tools/qmllint/checkidentifiers.cpp
@@ -355,8 +355,13 @@ bool CheckIdentifiers::operator()(
const auto typeIt = m_types.find(memberAccessBase.m_name);
if (typeIt != m_types.end()) {
- if (!checkMemberAccess(memberAccessChain, *typeIt))
+ if (typeIt->isNull()) {
+ // This is a namespaced import. Check with the full name.
+ if (!memberAccessChain.isEmpty())
+ memberAccessChain.front().m_name.prepend(memberAccessBase.m_name + u'.');
+ } else if (!checkMemberAccess(memberAccessChain, *typeIt)) {
noUnqualifiedIdentifier = false;
+ }
continue;
}