aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmllint/findwarnings.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-09-29 16:55:15 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-10-02 15:32:29 +0200
commitccd348d4b7423a23b2326c2f42c74719083248ba (patch)
treec42d114cac3824de9f3a0de9a1df0ee0e7c39a19 /tools/qmllint/findwarnings.cpp
parent4bb53fd1086e5e67391c7bd328ab5083ed83be68 (diff)
qmllint: Uncruftify the importing of base qmltypes
builtins.qmltypes are imported separately now. Any other bare qmltypes files without qmldir should be specified explicitly. If none are specified, qmllint looks in the current directory for qmltypes files, not in all possible import paths. This is still somewhat weird, but admittedly it's handy for qmltypes files generated for application binaries. For the same reason, we unconditionally include the current directory in the list of default import paths. Previously this was done if no explicit qmltypes files were specified, which makes little sense. Change-Id: Iaa56f8b40b3ec3045f55928251d7efea5616d23b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools/qmllint/findwarnings.cpp')
-rw-r--r--tools/qmllint/findwarnings.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/tools/qmllint/findwarnings.cpp b/tools/qmllint/findwarnings.cpp
index a11abbf002..742c1a8d35 100644
--- a/tools/qmllint/findwarnings.cpp
+++ b/tools/qmllint/findwarnings.cpp
@@ -113,7 +113,13 @@ void FindWarningVisitor::throwRecursionDepthError()
bool FindWarningVisitor::visit(QQmlJS::AST::UiProgram *)
{
enterEnvironment(ScopeType::QMLScope, "program");
- m_rootScopeImports = m_importer.importBaseQmlTypes(m_qmltypesFiles);
+ m_rootScopeImports = m_importer.importBuiltins();
+
+ if (!m_qmltypesFiles.isEmpty()) {
+ const auto baseTypes = m_importer.importQmltypes(m_qmltypesFiles);
+ m_rootScopeImports.importedQmlNames.insert(baseTypes.importedQmlNames);
+ m_rootScopeImports.cppNames.insert(baseTypes.cppNames);
+ }
// add "self" (as we only ever check the first part of a qualified identifier, we get away with
// using an empty ScopeTree
@@ -339,7 +345,7 @@ bool FindWarningVisitor::visit(QQmlJS::AST::IdentifierExpression *idexp)
}
FindWarningVisitor::FindWarningVisitor(
- QStringList qmltypeDirs, QStringList qmltypesFiles, QString code, QString fileName,
+ QStringList qmlImportPaths, QStringList qmltypesFiles, QString code, QString fileName,
bool silent, bool warnUnqualified, bool warnWithStatement, bool warnInheritanceCycle)
: m_rootScope(ScopeTree::create(ScopeType::JSFunctionScope)),
m_qmltypesFiles(std::move(qmltypesFiles)),
@@ -350,7 +356,7 @@ FindWarningVisitor::FindWarningVisitor(
m_warnUnqualified(warnUnqualified),
m_warnWithStatement(warnWithStatement),
m_warnInheritanceCycle(warnInheritanceCycle),
- m_importer(qmltypeDirs)
+ m_importer(qmlImportPaths)
{
m_rootScope->setInternalName("global");
m_currentScope = m_rootScope;