diff options
-rw-r--r-- | src/lib/corelib/language/jsimports.h | 3 | ||||
-rw-r--r-- | src/lib/corelib/language/language.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/resolvedfilecontext.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/tools/qttools.h | 15 | ||||
-rw-r--r-- | tests/auto/api/tst_api.cpp | 6 |
5 files changed, 22 insertions, 6 deletions
diff --git a/src/lib/corelib/language/jsimports.h b/src/lib/corelib/language/jsimports.h index ebde70b7b..a892e0ec0 100644 --- a/src/lib/corelib/language/jsimports.h +++ b/src/lib/corelib/language/jsimports.h @@ -42,6 +42,7 @@ #include <tools/codelocation.h> #include <tools/persistence.h> +#include <tools/qttools.h> #include <QtCore/qhash.h> #include <QtCore/qstringlist.h> @@ -79,7 +80,7 @@ inline bool operator<(const JsImport &lhs, const JsImport &rhs) inline bool operator==(const JsImport &jsi1, const JsImport &jsi2) { - return jsi1.scopeName == jsi2.scopeName && jsi1.filePaths.toSet() == jsi2.filePaths.toSet(); + return jsi1.scopeName == jsi2.scopeName && toSet(jsi1.filePaths) == toSet(jsi2.filePaths); } using JsImports = std::vector<JsImport>; diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp index d888700c5..40549b836 100644 --- a/src/lib/corelib/language/language.cpp +++ b/src/lib/corelib/language/language.cpp @@ -241,7 +241,7 @@ bool operator==(const ResolvedModule &m1, const ResolvedModule &m2) { return m1.name == m2.name && m1.isProduct == m2.isProduct - && m1.moduleDependencies.toSet() == m2.moduleDependencies.toSet() + && toSet(m1.moduleDependencies) == toSet(m2.moduleDependencies) && m1.setupBuildEnvironmentScript == m2.setupBuildEnvironmentScript && m1.setupRunEnvironmentScript == m2.setupRunEnvironmentScript; } diff --git a/src/lib/corelib/language/resolvedfilecontext.cpp b/src/lib/corelib/language/resolvedfilecontext.cpp index f1151f98f..db63a8ef4 100644 --- a/src/lib/corelib/language/resolvedfilecontext.cpp +++ b/src/lib/corelib/language/resolvedfilecontext.cpp @@ -53,7 +53,7 @@ ResolvedFileContext::ResolvedFileContext(const FileContextBase &ctx) bool operator==(const ResolvedFileContext &a, const ResolvedFileContext &b) { return a.filePath() == b.filePath() - && a.jsExtensions().toSet() == b.jsExtensions().toSet() + && toSet(a.jsExtensions()) == toSet(b.jsExtensions()) && sorted(a.jsImports()) == sorted(b.jsImports()); } diff --git a/src/lib/corelib/tools/qttools.h b/src/lib/corelib/tools/qttools.h index b465e3d9e..c3b4d3a9f 100644 --- a/src/lib/corelib/tools/qttools.h +++ b/src/lib/corelib/tools/qttools.h @@ -70,4 +70,19 @@ uint qHash(const QStringList &list); uint qHash(const QProcessEnvironment &env); QT_END_NAMESPACE +namespace qbs { + +template <class T> +QSet<T> toSet(const QList<T> &list) +{ +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) + return list.toSet(); +#else + return QSet<T>(list.begin(), list.end()); +#endif +} + +} // namespace qbs + + #endif // QBSQTTOOLS_H diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index 6313827fa..aac0f3e7e 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -2652,7 +2652,7 @@ void TestApi::restoredWarnings() waitForFinished(job.get()); QVERIFY2(!job->error().hasError(), qPrintable(job->error().toString())); job.reset(nullptr); - QCOMPARE(m_logSink->warnings.toSet().size(), 2); + QCOMPARE(toSet(m_logSink->warnings).size(), 2); const auto beforeErrors = m_logSink->warnings; for (const qbs::ErrorInfo &e : beforeErrors) { const QString msg = e.toString(); @@ -2667,7 +2667,7 @@ void TestApi::restoredWarnings() waitForFinished(job.get()); QVERIFY2(!job->error().hasError(), qPrintable(job->error().toString())); job.reset(nullptr); - QCOMPARE(m_logSink->warnings.toSet().size(), 2); + QCOMPARE(toSet(m_logSink->warnings).size(), 2); m_logSink->warnings.clear(); // Re-resolving with changes: Errors come from the re-resolving, stored ones must be suppressed. @@ -2678,7 +2678,7 @@ void TestApi::restoredWarnings() waitForFinished(job.get()); QVERIFY2(!job->error().hasError(), qPrintable(job->error().toString())); job.reset(nullptr); - QCOMPARE(m_logSink->warnings.toSet().size(), 3); // One more for the additional group + QCOMPARE(toSet(m_logSink->warnings).size(), 3); // One more for the additional group const auto afterErrors = m_logSink->warnings; for (const qbs::ErrorInfo &e : afterErrors) { const QString msg = e.toString(); |