aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmllint/findunqualified.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-26 01:00:11 +0100
committerFabian Kosmale <fabian.kosmale@qt.io>2020-04-09 10:08:41 +0200
commit2812184e1bb87cd94d2989162bc6ea954bb585c4 (patch)
tree25460548730e2ddc1f6f328d54e97d3fbfb49d21 /tools/qmllint/findunqualified.cpp
parentcd4a99a7ba92968bf88da9af2624bb738d71e726 (diff)
parentbf205b45a29ba80d94df3b6bac5fec4c7cd79bf9 (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: src/qml/jsruntime/qv4executablecompilationunit.cpp src/qml/jsruntime/qv4executablecompilationunit_p.h src/qml/qml/qqmlobjectcreator.cpp src/qml/qml/qqmlpropertycachecreator_p.h src/qml/qml/qqmltypecompiler.cpp src/qml/qml/qqmltypedata.cpp tests/auto/qml/qmlformat/tst_qmlformat.cpp tools/qmllint/scopetree.cpp src/qml/qml/qqmlapplicationengine_p.h Adjusted tools/qmllint/findunqualified.cpp to use newer API Change-Id: Ibfb4678ca39d626d47527265e3c96e43313873d4
Diffstat (limited to 'tools/qmllint/findunqualified.cpp')
-rw-r--r--tools/qmllint/findunqualified.cpp41
1 files changed, 32 insertions, 9 deletions
diff --git a/tools/qmllint/findunqualified.cpp b/tools/qmllint/findunqualified.cpp
index baae3a3ce7..604cf49122 100644
--- a/tools/qmllint/findunqualified.cpp
+++ b/tools/qmllint/findunqualified.cpp
@@ -183,8 +183,6 @@ QStringList completeImportPaths(const QString &uri, const QString &basePath, QTy
}
static const QLatin1String SlashQmldir = QLatin1String("/qmldir");
-static const QLatin1String SlashAppDotQmltypes = QLatin1String("/app.qmltypes");
-static const QLatin1String SlashLibDotQmltypes = QLatin1String("/lib.qmltypes");
static const QLatin1String SlashPluginsDotQmltypes = QLatin1String("/plugins.qmltypes");
void FindUnqualifiedIDVisitor::readQmltypes(const QString &filename,
@@ -287,16 +285,29 @@ void FindUnqualifiedIDVisitor::importHelper(const QString &module, const QString
break;
}
- Import result;
- if (QFile::exists(qmltypesPath + SlashAppDotQmltypes))
- readQmltypes(qmltypesPath + SlashAppDotQmltypes, result);
- else if (QFile::exists(qmltypesPath + SlashLibDotQmltypes))
- readQmltypes(qmltypesPath + SlashLibDotQmltypes, result);
- else
+ if (!m_qmltypeFiles.isEmpty())
continue;
+
+ Import result;
+
+ QDirIterator it { qmltypesPath, QStringList() << QLatin1String("*.qmltypes"), QDir::Files };
+
+ while (it.hasNext())
+ readQmltypes(it.next(), result);
+
processImport(prefix, result);
}
}
+
+ if (!m_qmltypeFiles.isEmpty())
+ {
+ Import result;
+
+ for (const auto &qmltypeFile : m_qmltypeFiles)
+ readQmltypes(qmltypeFile, result);
+
+ processImport("", result);
+ }
}
ScopeTree::Ptr FindUnqualifiedIDVisitor::localFile2ScopeTree(const QString &filePath)
@@ -433,6 +444,17 @@ bool FindUnqualifiedIDVisitor::visit(QQmlJS::AST::UiProgram *)
m_colorOut.writeUncolored(reader.errorMessage());
}
}
+
+ if (!m_qmltypeFiles.isEmpty())
+ {
+ for (const auto &qmltypeFile : m_qmltypeFiles) {
+ auto reader = createQmltypesReaderForFile(qmltypeFile);
+ auto succ = reader(&objects, &dependencies);
+ if (!succ)
+ m_colorOut.writeUncolored(reader.errorMessage());
+ }
+ }
+
// add builtins
for (auto objectIt = objects.begin(); objectIt != objects.end(); ++objectIt) {
auto val = objectIt.value();
@@ -644,10 +666,11 @@ bool FindUnqualifiedIDVisitor::visit(QQmlJS::AST::IdentifierExpression *idexp)
return true;
}
-FindUnqualifiedIDVisitor::FindUnqualifiedIDVisitor(QStringList qmltypeDirs, QString code,
+FindUnqualifiedIDVisitor::FindUnqualifiedIDVisitor(QStringList qmltypeDirs, QStringList qmltypeFiles, QString code,
QString fileName, bool silent)
: m_rootScope(ScopeTree::create(ScopeType::JSFunctionScope, "global")),
m_qmltypeDirs(std::move(qmltypeDirs)),
+ m_qmltypeFiles(std::move(qmltypeFiles)),
m_code(std::move(code)),
m_rootId(QLatin1String("<id>")),
m_filePath(std::move(fileName)),