diff options
91 files changed, 367 insertions, 263 deletions
@@ -1 +1 @@ -1.13.0 +1.14.0 diff --git a/src/app/qbs-setup-toolchains/msvcprobe.cpp b/src/app/qbs-setup-toolchains/msvcprobe.cpp index a6292d860..faacb4d09 100644 --- a/src/app/qbs-setup-toolchains/msvcprobe.cpp +++ b/src/app/qbs-setup-toolchains/msvcprobe.cpp @@ -213,7 +213,8 @@ static std::vector<MSVCInstallInfo> retrieveInstancesFromVSWhere(ProductType pro .arg(parseError.errorString()); return result; } - for (const QJsonValue &v : jsonOutput.array()) { + const auto jsonArray = jsonOutput.array(); + for (const QJsonValue &v : jsonArray) { const QJsonObject o = v.toObject(); MSVCInstallInfo info; info.version = o.value(QStringLiteral("installationVersion")).toString(); diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp index e90bafec2..c4ccbc517 100644 --- a/src/app/qbs-setup-toolchains/probe.cpp +++ b/src/app/qbs-setup-toolchains/probe.cpp @@ -191,8 +191,10 @@ static void setCommonProperties(Profile &profile, const QString &compilerFilePat class ToolPathSetup { public: - ToolPathSetup(Profile *profile, const QString &path, const QString &toolchainPrefix) - : m_profile(profile), m_compilerDirPath(path), m_toolchainPrefix(toolchainPrefix) + ToolPathSetup(Profile *profile, QString path, QString toolchainPrefix) + : m_profile(profile), + m_compilerDirPath(std::move(path)), + m_toolchainPrefix(std::move(toolchainPrefix)) { } @@ -369,7 +371,8 @@ static void iarProbe(Settings *settings, QList<Profile> &profiles) qStdout << Tr::tr("Trying to detect IAR toolchains...") << endl; bool isFound = false; - for (const QString &compilerName : knownIarCompilerNames()) { + const auto compilerNames = knownIarCompilerNames(); + for (const QString &compilerName : compilerNames) { const QString iarPath = findExecutable(HostOsInfo::appendExecutableSuffix(compilerName)); if (!iarPath.isEmpty()) { const auto profile = createIarProfile(iarPath, settings); @@ -387,7 +390,8 @@ static void keilProbe(Settings *settings, QList<Profile> &profiles) qStdout << Tr::tr("Trying to detect KEIL toolchains...") << endl; bool isFound = false; - for (const QString &compilerName : knownKeilCompilerNames()) { + const auto compilerNames = knownKeilCompilerNames(); + for (const QString &compilerName : compilerNames) { const QString keilPath = findExecutable(HostOsInfo::appendExecutableSuffix(compilerName)); if (!keilPath.isEmpty()) { const auto profile = createKeilProfile(keilPath, settings); diff --git a/src/app/qbs-setup-toolchains/xcodeprobe.cpp b/src/app/qbs-setup-toolchains/xcodeprobe.cpp index 227dc00f3..9b8acc79e 100644 --- a/src/app/qbs-setup-toolchains/xcodeprobe.cpp +++ b/src/app/qbs-setup-toolchains/xcodeprobe.cpp @@ -117,8 +117,9 @@ void XcodeProbe::detectDeveloperPaths() if (!launchServices.waitForFinished(-1) || launchServices.exitCode()) { qbsInfo() << Tr::tr("Could not detect additional Xcode installations with /usr/bin/mdfind"); } else { - for (const QString &path : QString::fromLocal8Bit(launchServices.readAllStandardOutput()) - .split(QLatin1Char('\n'), QString::SkipEmptyParts)) + const auto paths = QString::fromLocal8Bit(launchServices.readAllStandardOutput()) + .split(QLatin1Char('\n'), QString::SkipEmptyParts); + for (const QString &path : paths) addDeveloperPath(path + QStringLiteral("/Contents/Developer")); } } @@ -188,14 +189,15 @@ void XcodeProbe::setupDefaultToolchains(const QString &devPath, const QString &x << QStringLiteral("appletvsimulator") << QStringLiteral("watchos") << QStringLiteral("watchsimulator"); - for (const QString &platform : platforms) { + for (const QString &platform : qAsConst(platforms)) { Profile platformProfile(xcodeName + QLatin1Char('-') + platform, settings); platformProfile.removeProfile(); platformProfile.setBaseProfile(installationProfile.name()); platformProfile.setValue(QStringLiteral("qbs.targetPlatform"), targetOS(platform)); profiles.push_back(platformProfile); - for (const QString &arch : archList(platform)) { + const auto architectures = archList(platform); + for (const QString &arch : architectures) { Profile archProfile(xcodeName + QLatin1Char('-') + platform + QLatin1Char('-') + arch, settings); archProfile.removeProfile(); @@ -211,7 +213,7 @@ void XcodeProbe::detectAll() { int i = 1; detectDeveloperPaths(); - for (const QString &developerPath : developerPaths) { + for (const QString &developerPath : qAsConst(developerPaths)) { QString profileName = QStringLiteral("xcode"); if (developerPath != defaultDeveloperPath) { const auto devPath = developerPath.toStdString(); diff --git a/src/lib/corelib/api/internaljobs.cpp b/src/lib/corelib/api/internaljobs.cpp index 4d06821fd..95c3dc02c 100644 --- a/src/lib/corelib/api/internaljobs.cpp +++ b/src/lib/corelib/api/internaljobs.cpp @@ -125,11 +125,11 @@ private: }; -InternalJob::InternalJob(const Logger &logger, QObject *parent) +InternalJob::InternalJob(Logger logger, QObject *parent) : QObject(parent) , m_observer(new JobObserver(this)) , m_ownsObserver(true) - , m_logger(logger) + , m_logger(std::move(logger)) , m_timed(false) { } @@ -162,7 +162,8 @@ void InternalJob::storeBuildGraph(const TopLevelProjectPtr &project) project->store(logger()); } catch (const ErrorInfo &error) { ErrorInfo fullError = this->error(); - for (const ErrorItem &item : error.items()) + const auto items = error.items(); + for (const ErrorItem &item : items) fullError.append(item); setError(fullError); } diff --git a/src/lib/corelib/api/internaljobs.h b/src/lib/corelib/api/internaljobs.h index 71e6615bf..0ed9248e6 100644 --- a/src/lib/corelib/api/internaljobs.h +++ b/src/lib/corelib/api/internaljobs.h @@ -80,7 +80,7 @@ public: void shareObserverWith(InternalJob *otherJob); protected: - explicit InternalJob(const Logger &logger, QObject *parent = nullptr); + explicit InternalJob(Logger logger, QObject *parent = nullptr); JobObserver *observer() const { return m_observer; } void setTimed(bool timed) { m_timed = timed; } diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp index 42591ce2f..3ffd6b2e9 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -233,7 +233,8 @@ ResolvedProductPtr ProjectPrivate::internalProduct(const ProductData &product) c ProductData ProjectPrivate::findProductData(const ProductData &product) const { - for (const ProductData &p : m_projectData.allProducts()) { + const auto products = m_projectData.allProducts(); + for (const ProductData &p : products) { if (p.name() == product.name() && p.profile() == product.profile() && p.multiplexConfigurationId() == product.multiplexConfigurationId()) { @@ -246,7 +247,8 @@ ProductData ProjectPrivate::findProductData(const ProductData &product) const QList<ProductData> ProjectPrivate::findProductsByName(const QString &name) const { QList<ProductData> list; - for (const ProductData &p : m_projectData.allProducts()) { + const auto products = m_projectData.allProducts(); + for (const ProductData &p : products) { if (p.name() == name) list.push_back(p); } @@ -255,7 +257,8 @@ QList<ProductData> ProjectPrivate::findProductsByName(const QString &name) const GroupData ProjectPrivate::findGroupData(const ProductData &product, const QString &groupName) const { - for (const GroupData &g : product.groups()) { + const auto groups = product.groups(); + for (const GroupData &g : groups) { if (g.name() == groupName) return g; } @@ -708,11 +711,14 @@ void ProjectPrivate::updateExternalCodeLocations(const ProjectData &project, if (lineOffset == 0) return; updateLocationIfNecessary(project.d->location, changeLocation, lineOffset); - for (const ProjectData &subProject : project.subProjects()) + const auto subProjects = project.subProjects(); + for (const ProjectData &subProject : subProjects) updateExternalCodeLocations(subProject, changeLocation, lineOffset); - for (const ProductData &product : project.products()) { + const auto products = project.products(); + for (const ProductData &product : products) { updateLocationIfNecessary(product.d->location, changeLocation, lineOffset); - for (const GroupData &group : product.groups()) + const auto groups = product.groups(); + for (const GroupData &group : groups) updateLocationIfNecessary(group.d->location, changeLocation, lineOffset); } } @@ -788,7 +794,8 @@ ProjectTransformerData ProjectPrivate::transformerData() if (!m_projectData.isValid()) retrieveProjectData(m_projectData, internalProject); ProjectTransformerData projectTransformerData; - for (const ProductData &productData : m_projectData.allProducts()) { + const auto allProducts = m_projectData.allProducts(); + for (const ProductData &productData : allProducts) { if (!productData.isEnabled()) continue; const ResolvedProductConstPtr product = internalProduct(productData); diff --git a/src/lib/corelib/api/projectdata.cpp b/src/lib/corelib/api/projectdata.cpp index 0c3ba186d..767bd38c0 100644 --- a/src/lib/corelib/api/projectdata.cpp +++ b/src/lib/corelib/api/projectdata.cpp @@ -538,13 +538,14 @@ QList<ArtifactData> ProductData::targetArtifacts() const QList<ArtifactData> ProductData::installableArtifacts() const { QList<ArtifactData> artifacts; - for (const GroupData &g : groups()) { - for (const ArtifactData &a : g.allSourceArtifacts()) { + for (const GroupData &g : qAsConst(d->groups)) { + const auto sourceArtifacts = g.allSourceArtifacts(); + for (const ArtifactData &a : sourceArtifacts) { if (a.installData().isInstallable()) artifacts << a; } } - for (const ArtifactData &a : generatedArtifacts()) { + for (const ArtifactData &a : qAsConst(d->generatedArtifacts)) { if (a.installData().isInstallable()) artifacts << a; } @@ -560,7 +561,8 @@ QString ProductData::targetExecutable() const QBS_ASSERT(isValid(), return {}); if (d->moduleProperties.getModuleProperty(QStringLiteral("bundle"), QStringLiteral("isBundle")).toBool()) { - for (const ArtifactData &ta : targetArtifacts()) { + const auto artifacts = targetArtifacts(); + for (const ArtifactData &ta : artifacts) { if (ta.fileTags().contains(QLatin1String("bundle.application-executable"))) { if (ta.installData().isInstallable()) return ta.installData().localInstallFilePath(); @@ -568,7 +570,8 @@ QString ProductData::targetExecutable() const } } } - for (const ArtifactData &ta : targetArtifacts()) { + const auto artifacts = targetArtifacts(); + for (const ArtifactData &ta : artifacts) { if (ta.isExecutable()) { if (ta.installData().isInstallable()) return ta.installData().localInstallFilePath(); @@ -758,7 +761,7 @@ QList<ProjectData> ProjectData::subProjects() const QList<ProductData> ProjectData::allProducts() const { QList<ProductData> productList = products(); - for (const ProjectData &pd : subProjects()) + for (const ProjectData &pd : qAsConst(d->subProjects)) productList << pd.allProducts(); return productList; } @@ -769,7 +772,8 @@ QList<ProductData> ProjectData::allProducts() const QList<ArtifactData> ProjectData::installableArtifacts() const { QList<ArtifactData> artifacts; - for (const ProductData &p : allProducts()) + const auto products = allProducts(); + for (const ProductData &p : products) artifacts << p.installableArtifacts(); return artifacts; } diff --git a/src/lib/corelib/api/runenvironment.cpp b/src/lib/corelib/api/runenvironment.cpp index 989918207..df5b4337d 100644 --- a/src/lib/corelib/api/runenvironment.cpp +++ b/src/lib/corelib/api/runenvironment.cpp @@ -71,16 +71,16 @@ using namespace Internal; class RunEnvironment::RunEnvironmentPrivate { public: - RunEnvironmentPrivate(const ResolvedProductPtr &product, const TopLevelProjectConstPtr &project, - const InstallOptions &installOptions, const QProcessEnvironment &environment, - const QStringList &setupRunEnvConfig, Settings *settings, const Logger &logger) - : resolvedProduct(product) - , project(project) - , installOptions(installOptions) + RunEnvironmentPrivate(ResolvedProductPtr product, TopLevelProjectConstPtr project, + InstallOptions installOptions, const QProcessEnvironment &environment, + QStringList setupRunEnvConfig, Settings *settings, Logger logger) + : resolvedProduct(std::move(product)) + , project(std::move(project)) + , installOptions(std::move(installOptions)) , environment(environment) - , setupRunEnvConfig(setupRunEnvConfig) + , setupRunEnvConfig(std::move(setupRunEnvConfig)) , settings(settings) - , logger(logger) + , logger(std::move(logger)) , evalContext(this->logger) { } @@ -184,7 +184,8 @@ int RunEnvironment::doRunShell() #if defined(Q_OS_LINUX) clearenv(); #endif - for (const QString &key : environment.keys()) + const auto keys = environment.keys(); + for (const QString &key : keys) qputenv(key.toLocal8Bit().constData(), environment.value(key).toLocal8Bit()); QString command; if (HostOsInfo::isWindowsHost()) { @@ -260,7 +261,8 @@ static QString findMainIntent(const QString &aapt, const QString &apkFilePath) << QStringLiteral("badging") << apkFilePath); if (aaptProcess.waitForFinished(-1)) { - for (auto line : aaptProcess.readAllStandardOutput().split('\n')) { + const auto lines = aaptProcess.readAllStandardOutput().split('\n'); + for (const auto &line : lines) { if (line.startsWith(QByteArrayLiteral("package:"))) packageId = QString::fromStdString(readAaptBadgingAttribute(line.toStdString())); else if (line.startsWith(QByteArrayLiteral("launchable-activity:"))) diff --git a/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp b/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp index 4626c6a1a..1a1d51f11 100644 --- a/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp +++ b/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp @@ -49,14 +49,14 @@ namespace qbs { namespace Internal { -AbstractCommandExecutor::AbstractCommandExecutor(const Logger &logger, QObject *parent) +AbstractCommandExecutor::AbstractCommandExecutor(Logger logger, QObject *parent) : QObject(parent) , m_echoMode(defaultCommandEchoMode()) , m_command(nullptr) , m_transformer(nullptr) , m_mainThreadScriptEngine(nullptr) , m_dryRun(false) - , m_logger(logger) + , m_logger(std::move(logger)) { } diff --git a/src/lib/corelib/buildgraph/abstractcommandexecutor.h b/src/lib/corelib/buildgraph/abstractcommandexecutor.h index f140b5d82..60b2b40b2 100644 --- a/src/lib/corelib/buildgraph/abstractcommandexecutor.h +++ b/src/lib/corelib/buildgraph/abstractcommandexecutor.h @@ -58,7 +58,7 @@ class AbstractCommandExecutor : public QObject { Q_OBJECT public: - explicit AbstractCommandExecutor(const Internal::Logger &logger, QObject *parent = nullptr); + explicit AbstractCommandExecutor(Internal::Logger logger, QObject *parent = nullptr); void setMainThreadScriptEngine(ScriptEngine *engine) { m_mainThreadScriptEngine = engine; } void setDryRunEnabled(bool enabled) { m_dryRun = enabled; } diff --git a/src/lib/corelib/buildgraph/artifactcleaner.cpp b/src/lib/corelib/buildgraph/artifactcleaner.cpp index 232591e10..000dfda02 100644 --- a/src/lib/corelib/buildgraph/artifactcleaner.cpp +++ b/src/lib/corelib/buildgraph/artifactcleaner.cpp @@ -1,3 +1,5 @@ +#include <utility> + /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. @@ -98,12 +100,12 @@ static void removeArtifactFromDisk(Artifact *artifact, bool dryRun, const Logger class CleanupVisitor : public ArtifactVisitor { public: - CleanupVisitor(const CleanOptions &options, const ProgressObserver *observer, - const Logger &logger) + CleanupVisitor(CleanOptions options, const ProgressObserver *observer, + Logger logger) : ArtifactVisitor(Artifact::Generated) - , m_options(options) + , m_options(std::move(options)) , m_observer(observer) - , m_logger(logger) + , m_logger(std::move(logger)) , m_hasError(false) { } @@ -154,8 +156,8 @@ private: Set<QString> m_directories; }; -ArtifactCleaner::ArtifactCleaner(const Logger &logger, ProgressObserver *observer) - : m_logger(logger), m_observer(observer) +ArtifactCleaner::ArtifactCleaner(Logger logger, ProgressObserver *observer) + : m_logger(std::move(logger)), m_observer(observer) { } diff --git a/src/lib/corelib/buildgraph/artifactcleaner.h b/src/lib/corelib/buildgraph/artifactcleaner.h index 4d8c86ea8..5a28b981a 100644 --- a/src/lib/corelib/buildgraph/artifactcleaner.h +++ b/src/lib/corelib/buildgraph/artifactcleaner.h @@ -53,7 +53,7 @@ class ProgressObserver; class ArtifactCleaner { public: - ArtifactCleaner(const Logger &logger, ProgressObserver *observer); + ArtifactCleaner(Logger logger, ProgressObserver *observer); void cleanup(const TopLevelProjectPtr &project, const QList<ResolvedProductPtr> &products, const CleanOptions &options); diff --git a/src/lib/corelib/buildgraph/buildgraphloader.cpp b/src/lib/corelib/buildgraph/buildgraphloader.cpp index fc0492ef3..289dcea26 100644 --- a/src/lib/corelib/buildgraph/buildgraphloader.cpp +++ b/src/lib/corelib/buildgraph/buildgraphloader.cpp @@ -76,8 +76,8 @@ namespace qbs { namespace Internal { -BuildGraphLoader::BuildGraphLoader(const Logger &logger) : - m_logger(logger) +BuildGraphLoader::BuildGraphLoader(Logger logger) : + m_logger(std::move(logger)) { } diff --git a/src/lib/corelib/buildgraph/buildgraphloader.h b/src/lib/corelib/buildgraph/buildgraphloader.h index 94eb01c5d..9d34e2577 100644 --- a/src/lib/corelib/buildgraph/buildgraphloader.h +++ b/src/lib/corelib/buildgraph/buildgraphloader.h @@ -72,7 +72,7 @@ public: class BuildGraphLoader { public: - BuildGraphLoader(const Logger &logger); + BuildGraphLoader(Logger logger); ~BuildGraphLoader(); BuildGraphLoadResult load(const TopLevelProjectPtr &existingProject, diff --git a/src/lib/corelib/buildgraph/cycledetector.cpp b/src/lib/corelib/buildgraph/cycledetector.cpp index 95afba87d..5daed55fd 100644 --- a/src/lib/corelib/buildgraph/cycledetector.cpp +++ b/src/lib/corelib/buildgraph/cycledetector.cpp @@ -51,8 +51,8 @@ namespace qbs { namespace Internal { -CycleDetector::CycleDetector(const Logger &logger) - : m_parent(nullptr), m_logger(logger) +CycleDetector::CycleDetector(Logger logger) + : m_parent(nullptr), m_logger(std::move(logger)) { } @@ -80,7 +80,8 @@ bool CycleDetector::visitNode(BuildGraphNode *node) { if (Q_UNLIKELY(m_nodesInCurrentPath.contains(node))) { ErrorInfo error(Tr::tr("Cycle in build graph detected.")); - for (const BuildGraphNode * const n : cycle(node)) + const auto nodes = cycle(node); + for (const BuildGraphNode * const n : nodes) error.append(n->toString()); throw error; } diff --git a/src/lib/corelib/buildgraph/cycledetector.h b/src/lib/corelib/buildgraph/cycledetector.h index fffe6ed2f..5bfb44ef8 100644 --- a/src/lib/corelib/buildgraph/cycledetector.h +++ b/src/lib/corelib/buildgraph/cycledetector.h @@ -52,7 +52,7 @@ class BuildGraphNode; class QBS_AUTOTEST_EXPORT CycleDetector : private BuildGraphVisitor { public: - CycleDetector(const Logger &logger); + CycleDetector(Logger logger); void visitProject(const TopLevelProjectConstPtr &project); void visitProduct(const ResolvedProductConstPtr &product); diff --git a/src/lib/corelib/buildgraph/depscanner.cpp b/src/lib/corelib/buildgraph/depscanner.cpp index a2a39e4b2..0bf644286 100644 --- a/src/lib/corelib/buildgraph/depscanner.cpp +++ b/src/lib/corelib/buildgraph/depscanner.cpp @@ -154,9 +154,9 @@ bool PluginDependencyScanner::areModulePropertiesCompatible(const PropertyMapCon return true; } -UserDependencyScanner::UserDependencyScanner(const ResolvedScannerConstPtr &scanner, +UserDependencyScanner::UserDependencyScanner(ResolvedScannerConstPtr scanner, ScriptEngine *engine) - : m_scanner(scanner), + : m_scanner(std::move(scanner)), m_engine(engine), m_product(nullptr) { diff --git a/src/lib/corelib/buildgraph/depscanner.h b/src/lib/corelib/buildgraph/depscanner.h index b8f8721aa..ffc0b83de 100644 --- a/src/lib/corelib/buildgraph/depscanner.h +++ b/src/lib/corelib/buildgraph/depscanner.h @@ -102,7 +102,7 @@ private: class UserDependencyScanner : public DependencyScanner { public: - UserDependencyScanner(const ResolvedScannerConstPtr &scanner, ScriptEngine *engine); + UserDependencyScanner(ResolvedScannerConstPtr scanner, ScriptEngine *engine); private: QStringList collectSearchPaths(Artifact *artifact) override; diff --git a/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp b/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp index b3cc6c840..ebbcf67a7 100644 --- a/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp +++ b/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp @@ -49,8 +49,8 @@ namespace qbs { namespace Internal { EmptyDirectoriesRemover::EmptyDirectoriesRemover(const TopLevelProject *project, - const Logger &logger) - : m_project(project), m_logger(logger) + Logger logger) + : m_project(project), m_logger(std::move(logger)) { } diff --git a/src/lib/corelib/buildgraph/emptydirectoriesremover.h b/src/lib/corelib/buildgraph/emptydirectoriesremover.h index 6ec42c627..7d73fb819 100644 --- a/src/lib/corelib/buildgraph/emptydirectoriesremover.h +++ b/src/lib/corelib/buildgraph/emptydirectoriesremover.h @@ -53,7 +53,7 @@ class TopLevelProject; class EmptyDirectoriesRemover { public: - EmptyDirectoriesRemover(const TopLevelProject *project, const Logger &logger); + EmptyDirectoriesRemover(const TopLevelProject *project, Logger logger); void removeEmptyParentDirectories(const QStringList &artifactFilePaths); void removeEmptyParentDirectories(const ArtifactSet &artifacts); diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp index 8f71e1ea3..aeb199a64 100644 --- a/src/lib/corelib/buildgraph/executor.cpp +++ b/src/lib/corelib/buildgraph/executor.cpp @@ -86,10 +86,10 @@ bool Executor::ComparePriority::operator() (const BuildGraphNode *x, const Build } -Executor::Executor(const Logger &logger, QObject *parent) +Executor::Executor(Logger logger, QObject *parent) : QObject(parent) , m_productInstaller(nullptr) - , m_logger(logger) + , m_logger(std::move(logger)) , m_progressObserver(nullptr) , m_state(ExecutorIdle) , m_cancelationTimer(new QTimer(this)) @@ -105,7 +105,8 @@ Executor::~Executor() // jobs must be destroyed before deleting the shared scan result cache for (ExecutorJob *job : qAsConst(m_availableJobs)) delete job; - for (ExecutorJob *job : m_processingJobs.keys()) + const auto processingJobs = m_processingJobs.keys(); + for (ExecutorJob *job : processingJobs) delete job; delete m_inputArtifactScanContext; delete m_productInstaller; @@ -412,7 +413,8 @@ bool Executor::schedulingBlockedByJobLimit(const BuildGraphNode *node) // running transformers. if (jobLimitIsExceeded(transformer)) return true; - for (const ExecutorJob * const runningJob : m_processingJobs.keys()) { + const auto runningJobs = m_processingJobs.keys(); + for (const ExecutorJob * const runningJob : runningJobs) { if (!runningJob->jobPools().contains(jobPool)) continue; const Transformer * const runningTransformer = runningJob->transformer(); @@ -684,7 +686,8 @@ bool Executor::transformerHasMatchingInputFiles(const TransformerConstPtr &trans if (transformer->inputs.empty()) return true; for (const Artifact * const input : qAsConst(transformer->inputs)) { - for (const QString &filePath : m_buildOptions.filesToConsider()) { + const auto files = m_buildOptions.filesToConsider(); + for (const QString &filePath : files) { if (input->filePath() == filePath || input->fileTags().intersects(m_tagsNeededForFilesToConsider)) { return true; @@ -725,7 +728,8 @@ void Executor::cancelJobs() return; qCDebug(lcExec) << "Canceling all jobs."; setState(ExecutorCanceling); - for (ExecutorJob *job : m_processingJobs.keys()) + const auto jobs = m_processingJobs.keys(); + for (ExecutorJob *job : jobs) job->cancel(); } @@ -734,7 +738,7 @@ void Executor::setupProgressObserver() if (!m_progressObserver) return; int totalEffort = 1; // For the effort after the last rule application; - for (const ResolvedProductConstPtr &product : m_productsToBuild) { + for (const ResolvedProductConstPtr &product : qAsConst(m_productsToBuild)) { QBS_CHECK(product->buildData); const auto filtered = filterByType<RuleNode>(product->buildData->allNodes()); totalEffort += std::distance(filtered.begin(), filtered.end()); @@ -746,7 +750,7 @@ void Executor::doSanityChecks() { QBS_CHECK(m_project); QBS_CHECK(!m_productsToBuild.empty()); - for (const ResolvedProductConstPtr &product : m_productsToBuild) { + for (const ResolvedProductConstPtr &product : qAsConst(m_productsToBuild)) { QBS_CHECK(product->buildData); QBS_CHECK(product->topLevelProject() == m_project.get()); } @@ -754,7 +758,8 @@ void Executor::doSanityChecks() void Executor::handleError(const ErrorInfo &error) { - for (const ErrorItem &ei : error.items()) + const auto items = error.items(); + for (const ErrorItem &ei : items) m_error.append(ei); if (m_processingJobs.empty()) finish(); diff --git a/src/lib/corelib/buildgraph/executor.h b/src/lib/corelib/buildgraph/executor.h index 003ba9a22..f938d90c4 100644 --- a/src/lib/corelib/buildgraph/executor.h +++ b/src/lib/corelib/buildgraph/executor.h @@ -77,7 +77,7 @@ class Executor : public QObject, private BuildGraphVisitor public: void build(); - Executor(const Logger &logger, QObject *parent = nullptr); + Executor(Logger logger, QObject *parent = nullptr); ~Executor(); void setProject(const TopLevelProjectPtr &project); diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp index 68f3b744b..c8b2cb779 100644 --- a/src/lib/corelib/buildgraph/inputartifactscanner.cpp +++ b/src/lib/corelib/buildgraph/inputartifactscanner.cpp @@ -77,8 +77,9 @@ static void resolveDepencency(const RawScannedDependency &dependency, FileDependency *fileDependencyArtifact = nullptr; Artifact *dependencyInProduct = nullptr; Artifact *dependencyInOtherProduct = nullptr; - for (FileResourceBase *lookupResult : project->topLevelProject() - ->buildData->lookupFiles(absDirPath, dependency.fileName())) { + const auto files = project->topLevelProject() + ->buildData->lookupFiles(absDirPath, dependency.fileName()); + for (FileResourceBase *lookupResult : files) { switch (lookupResult->fileType()) { case FileResourceBase::FileTypeDependency: fileDependencyArtifact = static_cast<FileDependency *>(lookupResult); @@ -115,12 +116,12 @@ static void resolveDepencency(const RawScannedDependency &dependency, } InputArtifactScanner::InputArtifactScanner(Artifact *artifact, InputArtifactScannerContext *ctx, - const Logger &logger) + Logger logger) : m_artifact(artifact), m_rawScanResults(artifact->product->topLevelProject()->buildData->rawScanResults), m_context(ctx), m_newDependencyAdded(false), - m_logger(logger) + m_logger(std::move(logger)) { } @@ -274,7 +275,7 @@ void InputArtifactScanner::resolveScanResultDependencies(const Artifact *inputAr } // try include paths - for (const QString &includePath : cache.searchPaths) { + for (const QString &includePath : qAsConst(cache.searchPaths)) { resolveDepencency(dependency, inputArtifact->product.get(), &resolvedDependency, includePath); if (resolvedDependency.isValid()) diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.h b/src/lib/corelib/buildgraph/inputartifactscanner.h index 92d5f516f..ac51af579 100644 --- a/src/lib/corelib/buildgraph/inputartifactscanner.h +++ b/src/lib/corelib/buildgraph/inputartifactscanner.h @@ -118,7 +118,7 @@ class InputArtifactScanner { public: InputArtifactScanner(Artifact *artifact, InputArtifactScannerContext *ctx, - const Logger &logger); + Logger logger); void scan(); bool newDependencyAdded() const { return m_newDependencyAdded; } diff --git a/src/lib/corelib/buildgraph/jscommandexecutor.cpp b/src/lib/corelib/buildgraph/jscommandexecutor.cpp index 4b7adb221..9972ce796 100644 --- a/src/lib/corelib/buildgraph/jscommandexecutor.cpp +++ b/src/lib/corelib/buildgraph/jscommandexecutor.cpp @@ -71,8 +71,8 @@ class JsCommandExecutorThreadObject : public QObject { Q_OBJECT public: - JsCommandExecutorThreadObject(const Logger &logger) - : m_logger(logger) + JsCommandExecutorThreadObject(Logger logger) + : m_logger(std::move(logger)) , m_scriptEngine(nullptr) { } diff --git a/src/lib/corelib/buildgraph/processcommandexecutor.cpp b/src/lib/corelib/buildgraph/processcommandexecutor.cpp index 0818e1200..c34a734b4 100644 --- a/src/lib/corelib/buildgraph/processcommandexecutor.cpp +++ b/src/lib/corelib/buildgraph/processcommandexecutor.cpp @@ -89,7 +89,8 @@ static QProcessEnvironment mergeEnvironments(const QProcessEnvironment &baseEnv, QStringLiteral("DYLD_LIBRARY_PATH"), QStringLiteral("DYLD_FRAMEWORK_PATH"), }; - for (const QString &key : additionalEnv.keys()) { + const auto keys = additionalEnv.keys(); + for (const QString &key : keys) { QString newValue = additionalEnv.value(key); if (pathListVariables.contains(key, HostOsInfo::fileNameCaseSensitivity())) { const QString &oldValue = baseEnv.value(key); @@ -108,7 +109,8 @@ void ProcessCommandExecutor::doSetup() transformer()->product()->buildEnvironment) .findExecutable(cmd->program(), cmd->workingDir()); cmd->clearRelevantEnvValues(); - for (const QString &key : cmd->relevantEnvVars()) + const auto keys = cmd->relevantEnvVars(); + for (const QString &key : keys) cmd->addRelevantEnvValue(key, transformer()->product()->buildEnvironment.value(key)); m_commandEnvironment = mergeEnvironments(m_buildEnvironment, cmd->environment()); diff --git a/src/lib/corelib/buildgraph/productinstaller.cpp b/src/lib/corelib/buildgraph/productinstaller.cpp index cfd74c205..d4acc9ace 100644 --- a/src/lib/corelib/buildgraph/productinstaller.cpp +++ b/src/lib/corelib/buildgraph/productinstaller.cpp @@ -59,14 +59,14 @@ namespace qbs { namespace Internal { -ProductInstaller::ProductInstaller(const TopLevelProjectPtr &project, - const std::vector<ResolvedProductPtr> &products, const InstallOptions &options, - ProgressObserver *observer, const Logger &logger) - : m_project(project), - m_products(products), - m_options(options), +ProductInstaller::ProductInstaller(TopLevelProjectPtr project, + std::vector<ResolvedProductPtr> products, InstallOptions options, + ProgressObserver *observer, Logger logger) + : m_project(std::move(project)), + m_products(std::move(products)), + m_options(std::move(options)), m_observer(observer), - m_logger(logger) + m_logger(std::move(logger)) { if (!m_options.installRoot().isEmpty()) { QFileInfo installRootFileInfo(m_options.installRoot()); @@ -85,7 +85,7 @@ ProductInstaller::ProductInstaller(const TopLevelProjectPtr &project, if (m_options.removeExistingInstallation()) throw ErrorInfo(Tr::tr("Refusing to remove sysroot.")); } - initInstallRoot(project.get(), m_options); + initInstallRoot(m_project.get(), m_options); } void ProductInstaller::install() diff --git a/src/lib/corelib/buildgraph/productinstaller.h b/src/lib/corelib/buildgraph/productinstaller.h index 8379adb4c..09828cfe9 100644 --- a/src/lib/corelib/buildgraph/productinstaller.h +++ b/src/lib/corelib/buildgraph/productinstaller.h @@ -55,9 +55,9 @@ class ProgressObserver; class ProductInstaller { public: - ProductInstaller(const TopLevelProjectPtr &project, - const std::vector<ResolvedProductPtr> &products, - const InstallOptions &options, ProgressObserver *observer, const Logger &logger); + ProductInstaller(TopLevelProjectPtr project, + std::vector<ResolvedProductPtr> products, + InstallOptions options, ProgressObserver *observer, Logger logger); void install(); static QString targetFilePath(const TopLevelProject *project, const QString &productSourceDir, diff --git a/src/lib/corelib/buildgraph/projectbuilddata.cpp b/src/lib/corelib/buildgraph/projectbuilddata.cpp index dcb10b45b..6a145dacc 100644 --- a/src/lib/corelib/buildgraph/projectbuilddata.cpp +++ b/src/lib/corelib/buildgraph/projectbuilddata.cpp @@ -266,7 +266,7 @@ void ProjectBuildData::store(PersistentPool &pool) } -BuildDataResolver::BuildDataResolver(const Logger &logger) : m_logger(logger) +BuildDataResolver::BuildDataResolver(Logger logger) : m_logger(std::move(logger)) { } diff --git a/src/lib/corelib/buildgraph/projectbuilddata.h b/src/lib/corelib/buildgraph/projectbuilddata.h index 785a86cbb..49101a716 100644 --- a/src/lib/corelib/buildgraph/projectbuilddata.h +++ b/src/lib/corelib/buildgraph/projectbuilddata.h @@ -110,7 +110,7 @@ private: class BuildDataResolver { public: - BuildDataResolver(const Logger &logger); + BuildDataResolver(Logger logger); void resolveBuildData(const TopLevelProjectPtr &resolvedProject, const RulesEvaluationContextPtr &evalContext); void resolveProductBuildDataForExistingProject(const TopLevelProjectPtr &project, diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp index 7ff64a9ef..406f92783 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.cpp +++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp @@ -1,3 +1,5 @@ +#include <utility> + /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. @@ -76,15 +78,15 @@ namespace qbs { namespace Internal { RulesApplicator::RulesApplicator( - const ResolvedProductPtr &product, - const std::unordered_map<QString, const ResolvedProduct *> &productsByName, - const std::unordered_map<QString, const ResolvedProject *> &projectsByName, - const Logger &logger) - : m_product(product) - , m_productsByName(productsByName) - , m_projectsByName(projectsByName) + ResolvedProductPtr product, + std::unordered_map<QString, const ResolvedProduct *> productsByName, + std::unordered_map<QString, const ResolvedProject *> projectsByName, + Logger logger) + : m_product(std::move(product)) + , m_productsByName(std::move(productsByName)) + , m_projectsByName(std::move(projectsByName)) , m_mocScanner(nullptr) - , m_logger(logger) + , m_logger(std::move(logger)) { } @@ -308,7 +310,7 @@ void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &p || m_oldTransformer->commands != m_transformer->commands || commandsNeedRerun(m_transformer.get(), m_product.get(), m_productsByName, m_projectsByName)) { - for (Artifact * const output : outputArtifacts) { + for (Artifact * const output : qAsConst(outputArtifacts)) { output->clearTimestamp(); m_invalidatedArtifacts += output; } @@ -545,8 +547,8 @@ class ArtifactBindingsExtractor { struct Entry { - Entry(const QString &module, const QString &name, const QVariant &value) - : module(module), name(name), value(value) + Entry(QString module, QString name, QVariant value) + : module(std::move(module)), name(std::move(name)), value(std::move(value)) {} QString module; @@ -558,9 +560,9 @@ class ArtifactBindingsExtractor static Set<QString> getArtifactItemPropertyNames() { Set<QString> s; - for (const PropertyDeclaration &pd : - BuiltinDeclarations::instance().declarationsForType( - ItemType::Artifact).properties()) { + const auto properties = BuiltinDeclarations::instance().declarationsForType( + ItemType::Artifact).properties(); + for (const PropertyDeclaration &pd : properties) { s.insert(pd.name()); } s.insert(StringConstants::explicitlyDependsOnProperty()); diff --git a/src/lib/corelib/buildgraph/rulesapplicator.h b/src/lib/corelib/buildgraph/rulesapplicator.h index f6fadb1ec..1160f3d09 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.h +++ b/src/lib/corelib/buildgraph/rulesapplicator.h @@ -62,10 +62,10 @@ class ScriptEngine; class RulesApplicator { public: - RulesApplicator(const ResolvedProductPtr &product, - const std::unordered_map<QString, const ResolvedProduct *> &productsByName, - const std::unordered_map<QString, const ResolvedProject *> &projectsByName, - const Logger &logger); + RulesApplicator(ResolvedProductPtr product, + std::unordered_map<QString, const ResolvedProduct *> productsByName, + std::unordered_map<QString, const ResolvedProject *> projectsByName, + Logger logger); ~RulesApplicator(); const NodeSet &createdArtifacts() const { return m_createdArtifacts; } diff --git a/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp b/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp index c81e40c4f..6ae230329 100644 --- a/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp +++ b/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp @@ -53,8 +53,8 @@ namespace qbs { namespace Internal { -RulesEvaluationContext::RulesEvaluationContext(const Logger &logger) - : m_logger(logger), +RulesEvaluationContext::RulesEvaluationContext(Logger logger) + : m_logger(std::move(logger)), m_engine(ScriptEngine::create(m_logger, EvalContext::RuleExecution)), m_observer(nullptr), m_initScopeCalls(0) diff --git a/src/lib/corelib/buildgraph/rulesevaluationcontext.h b/src/lib/corelib/buildgraph/rulesevaluationcontext.h index d3bf0e5bd..a5d81ce61 100644 --- a/src/lib/corelib/buildgraph/rulesevaluationcontext.h +++ b/src/lib/corelib/buildgraph/rulesevaluationcontext.h @@ -56,7 +56,7 @@ class ScriptEngine; class RulesEvaluationContext { public: - RulesEvaluationContext(const Logger &logger); + RulesEvaluationContext(Logger logger); ~RulesEvaluationContext(); class Scope diff --git a/src/lib/corelib/buildgraph/transformer.cpp b/src/lib/corelib/buildgraph/transformer.cpp index cf632463d..0a4fa17f9 100644 --- a/src/lib/corelib/buildgraph/transformer.cpp +++ b/src/lib/corelib/buildgraph/transformer.cpp @@ -242,7 +242,8 @@ AbstractCommandPtr Transformer::createCommandFromScriptValue(const QScriptValue if (className == StringConstants::commandType()) { auto procCmd = static_cast<ProcessCommand *>(cmdBase.get()); procCmd->clearRelevantEnvValues(); - for (const QString &key : procCmd->relevantEnvVars()) + const auto envVars = procCmd->relevantEnvVars(); + for (const QString &key : envVars) procCmd->addRelevantEnvValue(key, product()->buildEnvironment.value(key)); } return cmdBase; diff --git a/src/lib/corelib/buildgraph/transformerchangetracking.cpp b/src/lib/corelib/buildgraph/transformerchangetracking.cpp index 08875b742..4ee4394fd 100644 --- a/src/lib/corelib/buildgraph/transformerchangetracking.cpp +++ b/src/lib/corelib/buildgraph/transformerchangetracking.cpp @@ -338,7 +338,8 @@ bool TrafoChangeTracker::commandsNeedRerun() const if (c->type() != AbstractCommand::ProcessCommandType) continue; const ProcessCommandPtr &processCmd = std::static_pointer_cast<ProcessCommand>(c); - for (const QString &var : processCmd->relevantEnvVars()) { + const auto envVars = processCmd->relevantEnvVars(); + for (const QString &var : envVars) { const QString &oldValue = processCmd->relevantEnvValue(var); const QString &newValue = m_product->buildEnvironment.value(var); if (oldValue != newValue) { diff --git a/src/lib/corelib/generators/generatableprojectiterator.cpp b/src/lib/corelib/generators/generatableprojectiterator.cpp index c6d990f02..7267662e8 100644 --- a/src/lib/corelib/generators/generatableprojectiterator.cpp +++ b/src/lib/corelib/generators/generatableprojectiterator.cpp @@ -41,8 +41,8 @@ namespace qbs { -GeneratableProjectIterator::GeneratableProjectIterator(const GeneratableProject &project) - : project(project) +GeneratableProjectIterator::GeneratableProjectIterator(GeneratableProject project) + : project(std::move(project)) { } diff --git a/src/lib/corelib/generators/generatableprojectiterator.h b/src/lib/corelib/generators/generatableprojectiterator.h index 793627512..993144ce3 100644 --- a/src/lib/corelib/generators/generatableprojectiterator.h +++ b/src/lib/corelib/generators/generatableprojectiterator.h @@ -49,7 +49,7 @@ class QBS_EXPORT GeneratableProjectIterator { GeneratableProject project; public: - GeneratableProjectIterator(const GeneratableProject &project); + GeneratableProjectIterator(GeneratableProject project); void accept(IGeneratableProjectVisitor *visitor); private: diff --git a/src/lib/corelib/generators/generator.cpp b/src/lib/corelib/generators/generator.cpp index 24da95e41..90bebdcaa 100644 --- a/src/lib/corelib/generators/generator.cpp +++ b/src/lib/corelib/generators/generator.cpp @@ -213,7 +213,7 @@ const GeneratableProject ProjectGenerator::project() const { QMap<QString, ProjectData> rootProjects; GeneratableProject proj; - for (const auto &project : projects()) { + for (const auto &project : qAsConst(d->projects)) { const QString configurationName = _configurationName(project); rootProjects.insert(configurationName, project.projectData()); proj.projects.insert(configurationName, project); diff --git a/src/lib/corelib/jsextensions/environmentextension.cpp b/src/lib/corelib/jsextensions/environmentextension.cpp index 22c4f069b..cf17c938b 100644 --- a/src/lib/corelib/jsextensions/environmentextension.cpp +++ b/src/lib/corelib/jsextensions/environmentextension.cpp @@ -127,7 +127,8 @@ QScriptValue EnvironmentExtension::js_currentEnv(QScriptContext *context, QScrip if (!procenv) procenv = &env; QScriptValue envObject = engine->newObject(); - for (const QString &key : procenv->keys()) { + const auto keys = procenv->keys(); + for (const QString &key : keys) { const QString keyName = HostOsInfo::isWindowsHost() ? key.toUpper() : key; envObject.setProperty(keyName, QScriptValue(procenv->value(key))); } diff --git a/src/lib/corelib/language/astimportshandler.cpp b/src/lib/corelib/language/astimportshandler.cpp index 960af4cda..d634af7e4 100644 --- a/src/lib/corelib/language/astimportshandler.cpp +++ b/src/lib/corelib/language/astimportshandler.cpp @@ -69,7 +69,8 @@ ASTImportsHandler::ASTImportsHandler(ItemReaderVisitorState &visitorState, Logge void ASTImportsHandler::handleImports(const QbsQmlJS::AST::UiImportList *uiImportList) { - for (const QString &searchPath : m_file->searchPaths()) + const auto searchPaths = m_file->searchPaths(); + for (const QString &searchPath : searchPaths) collectPrototypes(searchPath + QStringLiteral("/imports"), QString()); // files in the same directory are available as prototypes @@ -191,7 +192,8 @@ void ASTImportsHandler::handleImport(const QbsQmlJS::AST::UiImport *import, bool ? QStringLiteral("qbs/base") : importUri.join(QDir::separator()); bool found = m_typeNameToFile.contains(importUri); if (!found) { - for (const QString &searchPath : m_file->searchPaths()) { + const auto searchPaths = m_file->searchPaths(); + for (const QString &searchPath : searchPaths) { const QFileInfo fi(FileInfo::resolvePath( FileInfo::resolvePath(searchPath, StringConstants::importsDir()), diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp index ee1b2d56e..68355df51 100644 --- a/src/lib/corelib/language/builtindeclarations.cpp +++ b/src/lib/corelib/language/builtindeclarations.cpp @@ -150,7 +150,8 @@ QStringList BuiltinDeclarations::argumentNamesForScriptFunction(ItemType itemTyp const QString &scriptName) const { const ItemDeclaration itemDecl = declarationsForType(itemType); - for (const PropertyDeclaration &propDecl : itemDecl.properties()) { + const auto properties = itemDecl.properties(); + for (const PropertyDeclaration &propDecl : properties) { if (propDecl.name() == scriptName) return propDecl.functionArgumentNames(); } diff --git a/src/lib/corelib/language/item.cpp b/src/lib/corelib/language/item.cpp index 39dc39370..9f754bdd7 100644 --- a/src/lib/corelib/language/item.cpp +++ b/src/lib/corelib/language/item.cpp @@ -249,7 +249,8 @@ bool Item::isPresentModule() const void Item::setupForBuiltinType(Logger &logger) { const BuiltinDeclarations &builtins = BuiltinDeclarations::instance(); - for (const PropertyDeclaration &pd : builtins.declarationsForType(type()).properties()) { + const auto properties = builtins.declarationsForType(type()).properties(); + for (const PropertyDeclaration &pd : properties) { m_propertyDeclarations.insert(pd.name(), pd); const ValuePtr value = m_properties.value(pd.name()); if (!value) { diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp index 2ea306138..901772d16 100644 --- a/src/lib/corelib/language/itemreaderastvisitor.cpp +++ b/src/lib/corelib/language/itemreaderastvisitor.cpp @@ -67,9 +67,9 @@ namespace qbs { namespace Internal { ItemReaderASTVisitor::ItemReaderASTVisitor(ItemReaderVisitorState &visitorState, - const FileContextPtr &file, ItemPool *itemPool, Logger &logger) + FileContextPtr file, ItemPool *itemPool, Logger &logger) : m_visitorState(visitorState) - , m_file(file) + , m_file(std::move(file)) , m_itemPool(itemPool) , m_logger(logger) { diff --git a/src/lib/corelib/language/itemreaderastvisitor.h b/src/lib/corelib/language/itemreaderastvisitor.h index 4a0bedc91..963b78471 100644 --- a/src/lib/corelib/language/itemreaderastvisitor.h +++ b/src/lib/corelib/language/itemreaderastvisitor.h @@ -60,7 +60,7 @@ class ItemReaderVisitorState; class ItemReaderASTVisitor : public QbsQmlJS::AST::Visitor { public: - ItemReaderASTVisitor(ItemReaderVisitorState &visitorState, const FileContextPtr &file, + ItemReaderASTVisitor(ItemReaderVisitorState &visitorState, FileContextPtr file, ItemPool *itemPool, Logger &logger); void checkItemTypes() { doCheckItemTypes(rootItem()); } diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp index 239eddf1f..9c9313e17 100644 --- a/src/lib/corelib/language/language.cpp +++ b/src/lib/corelib/language/language.cpp @@ -91,8 +91,8 @@ template<typename T> bool equals(const T *v1, const T *v2) * \brief The \c FileTagger class maps 1:1 to the respective item in a qbs source file. */ -FileTagger::FileTagger(const QStringList &patterns, const FileTags &fileTags, int priority) - : m_fileTags(fileTags), m_priority(priority) +FileTagger::FileTagger(const QStringList &patterns, FileTags fileTags, int priority) + : m_fileTags(std::move(fileTags)), m_priority(priority) { setPatterns(patterns); } diff --git a/src/lib/corelib/language/language.h b/src/lib/corelib/language/language.h index 82d9f94a2..945ec9806 100644 --- a/src/lib/corelib/language/language.h +++ b/src/lib/corelib/language/language.h @@ -98,7 +98,7 @@ public: } private: - FileTagger(const QStringList &patterns, const FileTags &fileTags, int priority); + FileTagger(const QStringList &patterns, FileTags fileTags, int priority); FileTagger() {} void setPatterns(const QStringList &patterns); diff --git a/src/lib/corelib/language/loader.cpp b/src/lib/corelib/language/loader.cpp index e27ccca74..f248fbb1a 100644 --- a/src/lib/corelib/language/loader.cpp +++ b/src/lib/corelib/language/loader.cpp @@ -61,8 +61,8 @@ namespace qbs { namespace Internal { -Loader::Loader(ScriptEngine *engine, const Logger &logger) - : m_logger(logger) +Loader::Loader(ScriptEngine *engine, Logger logger) + : m_logger(std::move(logger)) , m_progressObserver(nullptr) , m_engine(engine) { @@ -167,7 +167,7 @@ TopLevelProjectPtr Loader::loadProject(const SetupProjectParameters &_parameters moduleLoader.setStoredProfiles(m_storedProfiles); moduleLoader.setStoredModuleProviderInfo(m_storedModuleProviderInfo); const ModuleLoaderResult loadResult = moduleLoader.load(parameters); - ProjectResolver resolver(&evaluator, loadResult, parameters, m_logger); + ProjectResolver resolver(&evaluator, loadResult, std::move(parameters), m_logger); resolver.setProgressObserver(m_progressObserver); const TopLevelProjectPtr project = resolver.resolve(); project->lastStartResolveTime = resolveTime; diff --git a/src/lib/corelib/language/loader.h b/src/lib/corelib/language/loader.h index 48a0b6065..d172a74ed 100644 --- a/src/lib/corelib/language/loader.h +++ b/src/lib/corelib/language/loader.h @@ -57,7 +57,7 @@ class ScriptEngine; class QBS_AUTOTEST_EXPORT Loader { public: - Loader(ScriptEngine *engine, const Logger &logger); + Loader(ScriptEngine *engine, Logger logger); void setProgressObserver(ProgressObserver *observer); void setSearchPaths(const QStringList &searchPaths); diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index d7fb9b75d..f8206031b 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -294,7 +294,8 @@ ModuleLoaderResult ModuleLoader::load(const SetupProjectParameters ¶meters) m_probesEncountered = m_probesRun = m_probesCachedCurrent = m_probesCachedOld = 0; m_settings.reset(new Settings(parameters.settingsDirectory())); - for (const QString &key : m_parameters.overriddenValues().keys()) { + const auto keys = m_parameters.overriddenValues().keys(); + for (const QString &key : keys) { static const QStringList prefixes({ StringConstants::projectPrefix(), QStringLiteral("projects"), QStringLiteral("products"), QStringLiteral("modules"), @@ -695,7 +696,7 @@ void ModuleLoader::handleProject(ModuleLoaderResult *loadResult, if (child->type() == ItemType::Product) multiplexedProducts << multiplexProductItem(&dummyProductContext, child); } - for (Item * const additionalProductItem : multiplexedProducts) + for (Item * const additionalProductItem : qAsConst(multiplexedProducts)) Item::addChild(projectItem, additionalProductItem); resolveProbes(&dummyProductContext, projectItem); @@ -2653,7 +2654,7 @@ void ModuleLoader::resolveDependsItem(DependsContext *dependsContext, Item *pare profiles.push_back(QString()); } for (const QString &profile : qAsConst(profiles)) { - for (const QString &multiplexId : multiplexConfigurationIds) { + for (const QString &multiplexId : qAsConst(multiplexConfigurationIds)) { ModuleLoaderResult::ProductInfo::Dependency dependency; dependency.name = moduleName.toString(); dependency.profile = profile; @@ -3405,7 +3406,8 @@ void ModuleLoader::instantiateModule(ProductContext *productContext, Item *expor // create ids from from the prototype in the instance if (modulePrototype->file()->idScope()) { - for (Item * const itemWithId : collectItemsWithId(modulePrototype)) { + const auto items = collectItemsWithId(modulePrototype); + for (Item * const itemWithId : items) { Item *idProto = itemWithId; Item *idInstance = prototypeInstanceMap.value(idProto); QBS_ASSERT(idInstance, continue); @@ -4044,7 +4046,8 @@ void ModuleLoader::handleProductError(const ErrorInfo &error, } } } - for (const ErrorItem &ei : error.items()) + const auto errorItems = error.items(); + for (const ErrorItem &ei : errorItems) productContext->info.delayedError.append(ei.description(), ei.codeLocation()); productContext->project->result->productInfos.insert(productContext->item, productContext->info); diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 0bbf8d37a..50c177f43 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -114,14 +114,14 @@ struct ProjectResolver::ModuleContext class CancelException { }; -ProjectResolver::ProjectResolver(Evaluator *evaluator, const ModuleLoaderResult &loadResult, - const SetupProjectParameters &setupParameters, Logger &logger) +ProjectResolver::ProjectResolver(Evaluator *evaluator, ModuleLoaderResult loadResult, + SetupProjectParameters setupParameters, Logger &logger) : m_evaluator(evaluator) , m_logger(logger) , m_engine(m_evaluator->engine()) , m_progressObserver(nullptr) - , m_setupParams(setupParameters) - , m_loadResult(loadResult) + , m_setupParams(std::move(setupParameters)) + , m_loadResult(std::move(loadResult)) { QBS_CHECK(FileInfo::isAbsolute(m_setupParams.buildRoot())); } @@ -826,7 +826,7 @@ void ProjectResolver::resolveGroupFully(Item *item, ProjectResolver::ProjectCont &m_productContext->sourceArtifactLocations, &fileError); } - for (const QString &fileName : files) { + for (const QString &fileName : qAsConst(files)) { createSourceArtifact(m_productContext->product, fileName, group, false, filesLocation, &m_productContext->sourceArtifactLocations, &fileError); } @@ -1022,7 +1022,8 @@ void ProjectResolver::setupExportedProperties(const Item *item, const QString &n const ItemDeclaration itemDecl = BuiltinDeclarations::instance().declarationsForType(item->type()); PropertyDeclaration propertyDecl; - for (const PropertyDeclaration &decl : itemDecl.properties()) { + const auto itemProperties = itemDecl.properties(); + for (const PropertyDeclaration &decl : itemProperties) { if (decl.name() == it.key()) { propertyDecl = decl; exportedProperty.isBuiltin = true; @@ -1109,7 +1110,8 @@ void ProjectResolver::resolveExport(Item *exportItem, ProjectContext *) exportItem->file()->content()); } } - for (const QString &builtinImport: JsExtensions::extensionNames()) { + const auto builtInImports = JsExtensions::extensionNames(); + for (const QString &builtinImport: builtInImports) { if (usesImport(exportedModule, builtinImport)) exportedModule.importStatements << QStringLiteral("import qbs.") + builtinImport; } diff --git a/src/lib/corelib/language/projectresolver.h b/src/lib/corelib/language/projectresolver.h index 0732b1c9b..c958127e4 100644 --- a/src/lib/corelib/language/projectresolver.h +++ b/src/lib/corelib/language/projectresolver.h @@ -67,8 +67,8 @@ class ScriptEngine; class ProjectResolver { public: - ProjectResolver(Evaluator *evaluator, const ModuleLoaderResult &loadResult, - const SetupProjectParameters &setupParameters, Logger &logger); + ProjectResolver(Evaluator *evaluator, ModuleLoaderResult loadResult, + SetupProjectParameters setupParameters, Logger &logger); ~ProjectResolver(); void setProgressObserver(ProgressObserver *observer); @@ -185,7 +185,7 @@ private: mutable QHash<CodeLocation, ScriptFunctionPtr> m_scriptFunctionMap; mutable QHash<std::pair<QStringRef, QStringList>, QString> m_scriptFunctions; mutable QHash<QStringRef, QString> m_sourceCode; - const SetupProjectParameters &m_setupParams; + const SetupProjectParameters m_setupParams; ModuleLoaderResult m_loadResult; Set<CodeLocation> m_groupLocationWarnings; std::vector<std::pair<ResolvedProductPtr, Item *>> m_productExportInfo; diff --git a/src/lib/corelib/language/scriptengine.cpp b/src/lib/corelib/language/scriptengine.cpp index 1c6d0cb0d..205a3a4d9 100644 --- a/src/lib/corelib/language/scriptengine.cpp +++ b/src/lib/corelib/language/scriptengine.cpp @@ -817,9 +817,11 @@ void ScriptEngine::uninstallImportFunctions() globalObject().setProperty(requireString(), QScriptValue()); } -ScriptEngine::PropertyCacheKey::PropertyCacheKey(const QString &moduleName, - const QString &propertyName, const PropertyMapConstPtr &propertyMap) - : m_moduleName(moduleName), m_propertyName(propertyName), m_propertyMap(propertyMap) +ScriptEngine::PropertyCacheKey::PropertyCacheKey(QString moduleName, + QString propertyName, PropertyMapConstPtr propertyMap) + : m_moduleName(std::move(moduleName)) + , m_propertyName(std::move(propertyName)) + , m_propertyMap(std::move(propertyMap)) { } diff --git a/src/lib/corelib/language/scriptengine.h b/src/lib/corelib/language/scriptengine.h index 89863189a..57802b018 100644 --- a/src/lib/corelib/language/scriptengine.h +++ b/src/lib/corelib/language/scriptengine.h @@ -302,8 +302,8 @@ private: class PropertyCacheKey { public: - PropertyCacheKey(const QString &moduleName, const QString &propertyName, - const PropertyMapConstPtr &propertyMap); + PropertyCacheKey(QString moduleName, QString propertyName, + PropertyMapConstPtr propertyMap); private: const QString m_moduleName; const QString m_propertyName; diff --git a/src/lib/corelib/language/value.cpp b/src/lib/corelib/language/value.cpp index 16cbbeeff..656f38874 100644 --- a/src/lib/corelib/language/value.cpp +++ b/src/lib/corelib/language/value.cpp @@ -183,9 +183,9 @@ ValuePtr ItemValue::clone() const return create(m_item->clone(), createdByPropertiesBlock()); } -VariantValue::VariantValue(const QVariant &v) +VariantValue::VariantValue(QVariant v) : Value(VariantValueType, false) - , m_value(v) + , m_value(std::move(v)) { } diff --git a/src/lib/corelib/language/value.h b/src/lib/corelib/language/value.h index b9a869d73..0b1b3c222 100644 --- a/src/lib/corelib/language/value.h +++ b/src/lib/corelib/language/value.h @@ -207,7 +207,7 @@ private: class VariantValue : public Value { - VariantValue(const QVariant &v); + VariantValue(QVariant v); public: static VariantValuePtr create(const QVariant &v = QVariant()); diff --git a/src/lib/corelib/logging/logger.cpp b/src/lib/corelib/logging/logger.cpp index c3b11094d..71ca6a96c 100644 --- a/src/lib/corelib/logging/logger.cpp +++ b/src/lib/corelib/logging/logger.cpp @@ -165,7 +165,8 @@ LogWriter operator<<(LogWriter w, const QVariant &variant) QString str = QLatin1String(variant.typeName()) + QLatin1Char('('); if (variant.type() == QVariant::List) { bool firstLoop = true; - for (const QVariant &item : variant.toList()) { + const auto list = variant.toList(); + for (const QVariant &item : list) { str += item.toString(); if (firstLoop) firstLoop = false; diff --git a/src/lib/corelib/tools/applecodesignutils.cpp b/src/lib/corelib/tools/applecodesignutils.cpp index 67c4f5238..feae266bf 100644 --- a/src/lib/corelib/tools/applecodesignutils.cpp +++ b/src/lib/corelib/tools/applecodesignutils.cpp @@ -80,7 +80,8 @@ QVariantMap certificateInfo(const QByteArray &data) // Also potentially useful, but these are for signing pkgs which aren't used here // 1.2.840.113635.100.4.9 - 3rd Party Mac Developer Installer: <name> // 1.2.840.113635.100.4.13 - Developer ID Installer: <name> - for (const auto &extension : cert.extensions()) { + const auto extensions = cert.extensions(); + for (const auto &extension : extensions) { if (extension.name() == QStringLiteral("extendedKeyUsage")) { if (!extension.value().toStringList().contains(QStringLiteral("Code Signing"))) return {}; @@ -89,7 +90,8 @@ QVariantMap certificateInfo(const QByteArray &data) const auto subjectInfo = [](const QSslCertificate &cert) { QVariantMap map; - for (const auto &attr : cert.subjectInfoAttributes()) + const auto attributes = cert.subjectInfoAttributes(); + for (const auto &attr : attributes) map.insert(QString::fromUtf8(attr), cert.subjectInfo(attr).front()); return map; }; diff --git a/src/lib/corelib/tools/buildgraphlocker.cpp b/src/lib/corelib/tools/buildgraphlocker.cpp index c166c6e2d..28a58e3f4 100644 --- a/src/lib/corelib/tools/buildgraphlocker.cpp +++ b/src/lib/corelib/tools/buildgraphlocker.cpp @@ -55,8 +55,8 @@ namespace qbs { namespace Internal { -DirectoryManager::DirectoryManager(const QString &dir, const Logger &logger) - : m_dir(dir), m_logger(logger) +DirectoryManager::DirectoryManager(QString dir, Logger logger) + : m_dir(std::move(dir)), m_logger(std::move(logger)) { rememberCreatedDirectories(); } diff --git a/src/lib/corelib/tools/buildgraphlocker.h b/src/lib/corelib/tools/buildgraphlocker.h index 17d452130..f85fc0768 100644 --- a/src/lib/corelib/tools/buildgraphlocker.h +++ b/src/lib/corelib/tools/buildgraphlocker.h @@ -55,7 +55,7 @@ class ProgressObserver; class DirectoryManager { public: - DirectoryManager(const QString &dir, const Logger &logger); + DirectoryManager(QString dir, Logger logger); ~DirectoryManager(); QString dir() const { return m_dir; } diff --git a/src/lib/corelib/tools/executablefinder.cpp b/src/lib/corelib/tools/executablefinder.cpp index 7c5d1210e..4342c82f0 100644 --- a/src/lib/corelib/tools/executablefinder.cpp +++ b/src/lib/corelib/tools/executablefinder.cpp @@ -64,10 +64,9 @@ static QStringList populateExecutableSuffixes() QStringList ExecutableFinder::m_executableSuffixes = populateExecutableSuffixes(); -ExecutableFinder::ExecutableFinder(const ResolvedProductPtr &m_product, - const QProcessEnvironment &env) - : m_product(m_product) - , m_environment(env) +ExecutableFinder::ExecutableFinder(ResolvedProductPtr product, QProcessEnvironment env) + : m_product(std::move(product)) + , m_environment(std::move(env)) { } diff --git a/src/lib/corelib/tools/executablefinder.h b/src/lib/corelib/tools/executablefinder.h index cb965b5d1..9467756fc 100644 --- a/src/lib/corelib/tools/executablefinder.h +++ b/src/lib/corelib/tools/executablefinder.h @@ -53,7 +53,7 @@ namespace Internal { class ExecutableFinder { public: - ExecutableFinder(const ResolvedProductPtr &product, const QProcessEnvironment &env); + ExecutableFinder(ResolvedProductPtr product, QProcessEnvironment env); QString findExecutable(const QString &path, const QString &workingDirPath); @@ -68,7 +68,7 @@ private: void cacheFilePath(const QString &filePaht, const QString &filePath) const; ResolvedProductPtr m_product; - const QProcessEnvironment &m_environment; + const QProcessEnvironment m_environment; }; } // namespace Internal diff --git a/src/lib/corelib/tools/fileinfo.cpp b/src/lib/corelib/tools/fileinfo.cpp index cec6b2660..8b0eedc27 100644 --- a/src/lib/corelib/tools/fileinfo.cpp +++ b/src/lib/corelib/tools/fileinfo.cpp @@ -404,8 +404,9 @@ bool removeFileRecursion(const QFileInfo &f, QString *errorMessage) const QDir dir(f.absoluteFilePath()); // QDir::System is needed for broken symlinks. - for (const QFileInfo &fi : dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot - | QDir::Hidden | QDir::System)) + const auto fileInfos = dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot + | QDir::Hidden | QDir::System); + for (const QFileInfo &fi : fileInfos) removeFileRecursion(fi, errorMessage); QDir parent = f.absoluteDir(); if (!parent.rmdir(f.fileName())) { diff --git a/src/lib/corelib/tools/filesaver.cpp b/src/lib/corelib/tools/filesaver.cpp index 0fd652657..5a0a68c1f 100644 --- a/src/lib/corelib/tools/filesaver.cpp +++ b/src/lib/corelib/tools/filesaver.cpp @@ -48,8 +48,8 @@ namespace qbs { namespace Internal { -FileSaver::FileSaver(const std::string &filePath, bool overwriteIfUnchanged) - : m_filePath(filePath), m_overwriteIfUnchanged(overwriteIfUnchanged) +FileSaver::FileSaver(std::string filePath, bool overwriteIfUnchanged) + : m_filePath(std::move(filePath)), m_overwriteIfUnchanged(overwriteIfUnchanged) { } diff --git a/src/lib/corelib/tools/filesaver.h b/src/lib/corelib/tools/filesaver.h index 275ad0f01..8b4c01669 100644 --- a/src/lib/corelib/tools/filesaver.h +++ b/src/lib/corelib/tools/filesaver.h @@ -55,7 +55,7 @@ namespace Internal { */ class QBS_EXPORT FileSaver { public: - FileSaver(const std::string &filePath, bool overwriteIfUnchanged = false); + FileSaver(std::string filePath, bool overwriteIfUnchanged = false); std::ostream *device(); bool open(); diff --git a/src/lib/corelib/tools/jsliterals.cpp b/src/lib/corelib/tools/jsliterals.cpp index bf9720493..74328006c 100644 --- a/src/lib/corelib/tools/jsliterals.cpp +++ b/src/lib/corelib/tools/jsliterals.cpp @@ -77,7 +77,8 @@ QString toJSLiteral(const QVariant &val) return Internal::StringConstants::undefinedValue(); if (val.type() == QVariant::List || val.type() == QVariant::StringList) { QString res; - for (const QVariant &child : val.toList()) { + const auto list = val.toList(); + for (const QVariant &child : list) { if (res.length()) res.append(QLatin1String(", ")); res.append(toJSLiteral(child)); } diff --git a/src/lib/corelib/tools/msvcinfo.cpp b/src/lib/corelib/tools/msvcinfo.cpp index f51ba8ba2..c1312c8c9 100644 --- a/src/lib/corelib/tools/msvcinfo.cpp +++ b/src/lib/corelib/tools/msvcinfo.cpp @@ -70,7 +70,8 @@ public: TemporaryEnvChanger(const QProcessEnvironment &envChanges) : m_locker(envMutex) { QProcessEnvironment currentEnv = QProcessEnvironment::systemEnvironment(); - for (const QString &key : envChanges.keys()) { + const auto keys = envChanges.keys(); + for (const QString &key : keys) { m_changesToRestore.insert(key, currentEnv.value(key)); qputenv(qPrintable(key), qPrintable(envChanges.value(key))); } @@ -78,7 +79,8 @@ public: ~TemporaryEnvChanger() { - for (const QString &key : m_changesToRestore.keys()) + const auto keys = m_changesToRestore.keys(); + for (const QString &key : keys) qputenv(qPrintable(key), qPrintable(m_changesToRestore.value(key))); } @@ -119,7 +121,7 @@ static QByteArray runProcess(const QString &exeFilePath, const QStringList &args class DummyFile { public: - DummyFile(const QString &fp) : filePath(fp) { } + DummyFile(QString fp) : filePath(std::move(fp)) { } ~DummyFile() { QFile::remove(filePath); } const QString filePath; }; diff --git a/src/lib/corelib/tools/preferences.cpp b/src/lib/corelib/tools/preferences.cpp index ca3fe8378..4db271758 100644 --- a/src/lib/corelib/tools/preferences.cpp +++ b/src/lib/corelib/tools/preferences.cpp @@ -1,3 +1,5 @@ +#include <utility> + /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. @@ -51,13 +53,13 @@ namespace qbs { * If a non-empty \c profileName is given, the profile's preferences take precedence over global * ones. Otherwise, the global preferences are used. */ -Preferences::Preferences(Settings *settings, const QString &profileName) - : m_settings(settings), m_profile(profileName) +Preferences::Preferences(Settings *settings, QString profileName) + : m_settings(settings), m_profile(std::move(profileName)) { } -Preferences::Preferences(Settings *settings, const QVariantMap &profileContents) - : m_settings(settings), m_profileContents(profileContents) +Preferences::Preferences(Settings *settings, QVariantMap profileContents) + : m_settings(settings), m_profileContents(std::move(profileContents)) { } @@ -131,14 +133,16 @@ JobLimits Preferences::jobLimits() const { const QString prefix = QStringLiteral("preferences.jobLimit"); JobLimits limits; - for (const QString &key : m_settings->allKeysWithPrefix(prefix, Settings::allScopes())) { + const auto keys = m_settings->allKeysWithPrefix(prefix, Settings::allScopes()); + for (const QString &key : keys) { limits.setJobLimit(key, m_settings->value(prefix + QLatin1Char('.') + key, Settings::allScopes()).toInt()); } const QString fullPrefix = prefix + QLatin1Char('.'); if (!m_profile.isEmpty()) { Profile p(m_profile, m_settings, m_profileContents); - for (const QString &key : p.allKeys(Profile::KeySelectionRecursive)) { + const auto keys = p.allKeys(Profile::KeySelectionRecursive); + for (const QString &key : keys) { if (!key.startsWith(fullPrefix)) continue; const QString jobPool = key.mid(fullPrefix.size()); diff --git a/src/lib/corelib/tools/preferences.h b/src/lib/corelib/tools/preferences.h index 661b39d7f..2824ebf2c 100644 --- a/src/lib/corelib/tools/preferences.h +++ b/src/lib/corelib/tools/preferences.h @@ -54,8 +54,8 @@ class Settings; class QBS_EXPORT Preferences { public: - explicit Preferences(Settings *settings, const QString &profileName = QString()); - Preferences(Settings *settings, const QVariantMap &profileContents); + explicit Preferences(Settings *settings, QString profileName = QString()); + Preferences(Settings *settings, QVariantMap profileContents); bool useColoredOutput() const; int jobs() const; diff --git a/src/lib/corelib/tools/settingscreator.cpp b/src/lib/corelib/tools/settingscreator.cpp index 8479a67dc..eaaf2802c 100644 --- a/src/lib/corelib/tools/settingscreator.cpp +++ b/src/lib/corelib/tools/settingscreator.cpp @@ -1,3 +1,5 @@ +#include <utility> + /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. @@ -56,8 +58,9 @@ static QSettings::Format format() } -SettingsCreator::SettingsCreator(const QString &baseDir) - : m_settingsBaseDir(baseDir), m_qbsVersion(Version::fromString(QLatin1String(QBS_VERSION))) +SettingsCreator::SettingsCreator(QString baseDir) + : m_settingsBaseDir(std::move(baseDir)) + , m_qbsVersion(Version::fromString(QLatin1String(QBS_VERSION))) { } @@ -102,7 +105,8 @@ void SettingsCreator::migrate() // that's only preferences.qbsSearchPaths as written by libqtprofilesetup, but we don't want // to hardcode that here. m_settings.reset(new QSettings(m_newSettingsFilePath, format())); - for (const QString &key : m_settings->allKeys()) { + const auto allKeys = m_settings->allKeys(); + for (const QString &key : allKeys) { QVariant v = m_settings->value(key); if (v.type() == QVariant::String) { QString s = v.toString(); diff --git a/src/lib/corelib/tools/settingscreator.h b/src/lib/corelib/tools/settingscreator.h index 6bc2a5cb7..39da80a7f 100644 --- a/src/lib/corelib/tools/settingscreator.h +++ b/src/lib/corelib/tools/settingscreator.h @@ -56,7 +56,7 @@ namespace Internal { class SettingsCreator { public: - SettingsCreator(const QString &baseDir); + SettingsCreator(QString baseDir); QSettings *getQSettings(); diff --git a/src/lib/corelib/tools/settingsmodel.cpp b/src/lib/corelib/tools/settingsmodel.cpp index 4a90773eb..d67f1da5c 100644 --- a/src/lib/corelib/tools/settingsmodel.cpp +++ b/src/lib/corelib/tools/settingsmodel.cpp @@ -327,7 +327,8 @@ void SettingsModel::SettingsModelPrivate::readSettings() { qDeleteAll(rootNode.children); rootNode.children.clear(); - for (const QString &topLevelKey : settings->directChildren(QString(), scope())) + const auto topLevelKeys = settings->directChildren(QString(), scope()); + for (const QString &topLevelKey : topLevelKeys) addNodeFromSettings(&rootNode, topLevelKey); for (QVariantMap::ConstIterator it = additionalProperties.constBegin(); it != additionalProperties.constEnd(); ++it) { @@ -353,7 +354,8 @@ void SettingsModel::SettingsModelPrivate::addNodeFromSettings(Node *parentNode, = fullyQualifiedName.mid(fullyQualifiedName.lastIndexOf(QLatin1Char('.')) + 1); Node * const node = createNode(parentNode, nodeName); node->value = settingsValueToRepresentation(settings->value(fullyQualifiedName, scope())); - for (const QString &childKey : settings->directChildren(fullyQualifiedName, scope())) + const auto childKeys = settings->directChildren(fullyQualifiedName, scope()); + for (const QString &childKey : childKeys) addNodeFromSettings(node, fullyQualifiedName + QLatin1Char('.') + childKey); dirty = true; } diff --git a/src/lib/corelib/tools/setupprojectparameters.cpp b/src/lib/corelib/tools/setupprojectparameters.cpp index 6b13570d7..6d817c8f3 100644 --- a/src/lib/corelib/tools/setupprojectparameters.cpp +++ b/src/lib/corelib/tools/setupprojectparameters.cpp @@ -109,6 +109,8 @@ SetupProjectParameters::SetupProjectParameters(const SetupProjectParameters &oth { } +SetupProjectParameters::SetupProjectParameters(SetupProjectParameters &&other) Q_DECL_NOEXCEPT = default; + SetupProjectParameters::~SetupProjectParameters() { } @@ -119,6 +121,8 @@ SetupProjectParameters &SetupProjectParameters::operator=(const SetupProjectPara return *this; } +SetupProjectParameters &SetupProjectParameters::operator=(SetupProjectParameters &&other) Q_DECL_NOEXCEPT = default; + /*! * \brief Returns the name of the top-level profile for building the project. */ diff --git a/src/lib/corelib/tools/setupprojectparameters.h b/src/lib/corelib/tools/setupprojectparameters.h index c462ca212..cf3b200cb 100644 --- a/src/lib/corelib/tools/setupprojectparameters.h +++ b/src/lib/corelib/tools/setupprojectparameters.h @@ -65,9 +65,11 @@ class QBS_EXPORT SetupProjectParameters public: SetupProjectParameters(); SetupProjectParameters(const SetupProjectParameters &other); + SetupProjectParameters(SetupProjectParameters &&other) Q_DECL_NOEXCEPT; ~SetupProjectParameters(); SetupProjectParameters &operator=(const SetupProjectParameters &other); + SetupProjectParameters &operator=(SetupProjectParameters &&other) Q_DECL_NOEXCEPT; QString topLevelProfile() const; void setTopLevelProfile(const QString &profile); diff --git a/src/lib/corelib/tools/vsenvironmentdetector.cpp b/src/lib/corelib/tools/vsenvironmentdetector.cpp index b91a8ff74..869423950 100644 --- a/src/lib/corelib/tools/vsenvironmentdetector.cpp +++ b/src/lib/corelib/tools/vsenvironmentdetector.cpp @@ -201,9 +201,12 @@ static QString vcArchitecture(const MSVC *msvc) if (msvc->architecture == StringConstants::x86_64Arch()) vcArch = StringConstants::amd64Arch(); - for (const QString &hostPrefix : - QStringList({StringConstants::x86Arch(), QStringLiteral("amd64_"), - QStringLiteral("x86_")})) { + const QString hostPrefixes[] = { + StringConstants::x86Arch(), + QStringLiteral("amd64_"), + QStringLiteral("x86_") + }; + for (const QString &hostPrefix : hostPrefixes) { if (QFile::exists(msvc->clPathForArchitecture(hostPrefix + vcArch))) { vcArch.prepend(hostPrefix); break; @@ -237,7 +240,8 @@ void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, std::vector { QString arch; QProcessEnvironment *targetEnv = nullptr; - for (QByteArray line : output.split('\n')) { + const auto lines = output.split('\n'); + for (QByteArray line : lines) { line = line.trimmed(); if (line.isEmpty()) continue; diff --git a/src/libexec/qbs_processlauncher/launchersockethandler.cpp b/src/libexec/qbs_processlauncher/launchersockethandler.cpp index a6f7843ec..53bd81a9a 100644 --- a/src/libexec/qbs_processlauncher/launchersockethandler.cpp +++ b/src/libexec/qbs_processlauncher/launchersockethandler.cpp @@ -97,9 +97,9 @@ private: enum class StopState { Inactive, Terminating, Killing } m_stopState = StopState::Inactive; }; -LauncherSocketHandler::LauncherSocketHandler(const QString &serverPath, QObject *parent) +LauncherSocketHandler::LauncherSocketHandler(QString serverPath, QObject *parent) : QObject(parent), - m_serverPath(serverPath), + m_serverPath(std::move(serverPath)), m_socket(new QLocalSocket(this)) { m_packetParser.setDevice(m_socket); diff --git a/src/libexec/qbs_processlauncher/launchersockethandler.h b/src/libexec/qbs_processlauncher/launchersockethandler.h index e96c02e13..5f3e04979 100644 --- a/src/libexec/qbs_processlauncher/launchersockethandler.h +++ b/src/libexec/qbs_processlauncher/launchersockethandler.h @@ -58,7 +58,7 @@ class LauncherSocketHandler : public QObject { Q_OBJECT public: - explicit LauncherSocketHandler(const QString &socketPath, QObject *parent = nullptr); + explicit LauncherSocketHandler(QString socketPath, QObject *parent = nullptr); ~LauncherSocketHandler(); void start(); diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp b/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp index 0f94f2b2b..bc13ec480 100644 --- a/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp +++ b/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp @@ -69,14 +69,18 @@ QString ClangCompilationDatabaseGenerator::generatorName() const void ClangCompilationDatabaseGenerator::generate() { - for (const Project &theProject : project().projects.values()) { + const auto projects = project().projects.values(); + for (const Project &theProject : projects) { QJsonArray database; const ProjectData projectData = theProject.projectData(); const QString buildDir = projectData.buildDirectory(); - for (const ProductData &productData : projectData.allProducts()) { - for (const GroupData &groupData : productData.groups()) { - for (const ArtifactData &sourceArtifact : groupData.allSourceArtifacts()) { + const auto products = projectData.allProducts(); + for (const ProductData &productData : products) { + const auto groups = productData.groups(); + for (const GroupData &groupData : groups) { + const auto sourceArtifacts = groupData.allSourceArtifacts(); + for (const ArtifactData &sourceArtifact : sourceArtifacts) { if (!hasValidInputFileTag(sourceArtifact.fileTags())) continue; diff --git a/src/plugins/generator/makefilegenerator/makefilegenerator.cpp b/src/plugins/generator/makefilegenerator/makefilegenerator.cpp index f186b5244..24aff5a33 100644 --- a/src/plugins/generator/makefilegenerator/makefilegenerator.cpp +++ b/src/plugins/generator/makefilegenerator/makefilegenerator.cpp @@ -156,7 +156,8 @@ static QString removeCommand() void qbs::MakefileGenerator::generate() { - for (const Project &theProject : project().projects.values()) { + const auto projects = project().projects.values(); + for (const Project &theProject : projects) { const QString makefileFilePath = theProject.projectData().buildDirectory() + QLatin1String("/Makefile"); QFile makefile(makefileFilePath); @@ -241,16 +242,19 @@ void qbs::MakefileGenerator::generate() allDefaultTargets.push_back(productTarget); allTargets.push_back(productTarget); stream << productTarget << ':'; - for (const ArtifactData &ta : productData.targetArtifacts()) + const auto targetArtifacts = productData.targetArtifacts(); + for (const ArtifactData &ta : targetArtifacts) stream << ' ' << transformedOutputFilePath(ta); stream << '\n'; for (const TransformerData &transformerData : productTransformerData) { stream << transformedOutputFilePath(transformerData.outputs().constFirst()) << ":"; - for (const ArtifactData &input : transformerData.inputs()) + const auto inputs = transformerData.inputs(); + for (const ArtifactData &input : inputs) stream << ' ' << transformedArtifactFilePath(input); stream << '\n'; Set<QString> createdDirs; - for (const ArtifactData &output : transformerData.outputs()) { + const auto outputs = transformerData.outputs(); + for (const ArtifactData &output : outputs) { const QString outputDir = QFileInfo(output.filePath()).path(); if (createdDirs.insert(outputDir).second) stream << "\t" << mkdirCmdLine(QDir::toNativeSeparators( @@ -258,7 +262,8 @@ void qbs::MakefileGenerator::generate() << '\n'; } bool processCommandEncountered = false; - for (const RuleCommand &command : transformerData.commands()) { + const auto commands = transformerData.commands(); + for (const RuleCommand &command : commands) { if (command.type() == RuleCommand::JavaScriptCommandType) { jsCommandsEncountered = true; continue; @@ -268,7 +273,8 @@ void qbs::MakefileGenerator::generate() quote(bruteForcePathReplace(command.executable(), srcDir, buildDir, installRoot))); // TODO: Optionally use environment? - for (const QString &arg : command.arguments()) { + const auto args = command.arguments(); + for (const QString &arg : args) { stream << ' ' << quote(bruteForcePathReplace(arg, srcDir, buildDir, installRoot)); } @@ -279,13 +285,15 @@ void qbs::MakefileGenerator::generate() << transformedOutputFilePath(transformerData.outputs().at(i-1)) << '\n'; } if (!processCommandEncountered && builtByDefault) { - for (const ArtifactData &output : transformerData.outputs()) + const auto outputs = transformerData.outputs(); + for (const ArtifactData &output : outputs) filesCreatedByJsCommands.push_back(output.filePath()); } } stream << "install-" << productTarget << ": " << productTarget << '\n'; Set<QString> createdDirs; - for (const ArtifactData &artifact : productData.installableArtifacts()) { + const auto installableArtifacts = productData.installableArtifacts(); + for (const ArtifactData &artifact : installableArtifacts) { const QString &outputDir = artifact.installData().localInstallDir(); if (outputDir.contains(QLatin1Char(' '))) { logger().qbsWarning() << Tr::tr("Skipping installation of '%1', because " @@ -311,7 +319,8 @@ void qbs::MakefileGenerator::generate() << transformedInputFilePath << ' ' << transformedOutputDir << '\n'; } stream << "clean-" << productTarget << ":\n"; - for (const ArtifactData &artifact : productData.generatedArtifacts()) { + const auto generatedArtifacts = productData.generatedArtifacts(); + for (const ArtifactData &artifact : generatedArtifacts) { const QFileInfo fileInfo(artifact.filePath()); const QString transformedFilePath = QDir::toNativeSeparators( prefixifiedBuildDirPath(fileInfo.path()) @@ -324,15 +333,15 @@ void qbs::MakefileGenerator::generate() } stream << "all:"; - for (const QString &target : allDefaultTargets) + for (const QString &target : qAsConst(allDefaultTargets)) stream << ' ' << target; stream << '\n'; stream << "install:"; - for (const QString &target : allDefaultTargets) + for (const QString &target : qAsConst(allDefaultTargets)) stream << ' ' << "install-" << target; stream << '\n'; stream << "clean:"; - for (const QString &target : allTargets) + for (const QString &target : qAsConst(allTargets)) stream << ' ' << "clean-" << target; stream << '\n'; if (!filesCreatedByJsCommands.empty()) { diff --git a/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp b/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp index 4c0495316..07e8d81b8 100644 --- a/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp +++ b/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp @@ -87,7 +87,8 @@ bool VisualStudioSolutionWriter::write(const VisualStudioSolution *solution) << solution->versionInfo().version().majorVersion() << u8"\n"; - for (const auto &project : solution->fileProjects()) { + const auto fileProjects = solution->fileProjects(); + for (const auto &project : fileProjects) { auto projectFilePath = project->filePath().toStdString(); // Try to make the project file path relative to the @@ -126,7 +127,8 @@ bool VisualStudioSolutionWriter::write(const VisualStudioSolution *solution) out << u8"EndProject\n"; } - for (const auto &project : solution->folderProjects()) { + const auto folderProjects = solution->folderProjects(); + for (const auto &project : folderProjects) { out << u8"Project(\"" << project->projectTypeGuid().toString().toStdString() << u8"\") = \"" @@ -142,7 +144,8 @@ bool VisualStudioSolutionWriter::write(const VisualStudioSolution *solution) out << u8"Global\n"; - for (const auto &globalSection : solution->globalSections()) { + const auto globalSections = solution->globalSections(); + for (const auto &globalSection : globalSections) { out << u8"\tGlobalSection(" << globalSection->name().toStdString() << u8") = " diff --git a/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp b/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp index 7d633ca44..54a1dfb5e 100644 --- a/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp +++ b/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp @@ -110,8 +110,10 @@ MSBuildFiltersProject::MSBuildFiltersProject(const GeneratableProductData &produ } Internal::Set<QString> allFiles; - for (const auto &productData : product.data.values()) { - for (const auto &groupData : productData.groups()) + const auto productDatas = product.data.values(); + for (const auto &productData : productDatas) { + const auto groups = productData.groups(); + for (const auto &groupData : groups) if (groupData.isEnabled()) allFiles.unite(Internal::Set<QString>::fromList(groupData.allFilePaths())); } diff --git a/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp b/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp index ed41dfb33..2d679ceb1 100644 --- a/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp +++ b/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp @@ -176,7 +176,8 @@ void MSBuildQbsProductProject::addConfiguration(const GeneratableProject &projec .runEnvironment(); if (!env.isEmpty()) { const auto systemEnv = QProcessEnvironment::systemEnvironment(); - for (const auto &key : systemEnv.keys()) { + const auto keys = systemEnv.keys(); + for (const auto &key : keys) { if (!env.contains(key)) continue; @@ -364,8 +365,10 @@ void MSBuildQbsProductProject::addFiles(const GeneratableProject &project, QMapIterator<QString, qbs::ProductData> productDataIt(product.data); while (productDataIt.hasNext()) { productDataIt.next(); - for (const auto &group : productDataIt.value().groups()) { - for (const auto &sourceArtifact : group.allSourceArtifacts()) { + const auto groups = productDataIt.value().groups(); + for (const auto &group : groups) { + const auto sourceArtifacts = group.allSourceArtifacts(); + for (const auto &sourceArtifact : sourceArtifacts) { const auto filePath = sourceArtifact.filePath(); if (sourceFileNodes.find(filePath) == sourceFileNodes.end()) { sourceFileNodes.insert({ diff --git a/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp b/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp index fbd6a3848..c09ef1f4f 100644 --- a/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp +++ b/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp @@ -74,7 +74,7 @@ QList<IVisualStudioSolutionProject *> VisualStudioSolution::projects() const QList<VisualStudioSolutionFileProject *> VisualStudioSolution::fileProjects() const { QList<VisualStudioSolutionFileProject *> list; - for (const auto &project : d->projects) + for (const auto &project : qAsConst(d->projects)) if (auto fileProject = qobject_cast<VisualStudioSolutionFileProject *>(project)) list.push_back(fileProject); return list; @@ -83,7 +83,7 @@ QList<VisualStudioSolutionFileProject *> VisualStudioSolution::fileProjects() co QList<VisualStudioSolutionFolderProject *> VisualStudioSolution::folderProjects() const { QList<VisualStudioSolutionFolderProject *> list; - for (const auto &project : d->projects) + for (const auto &project : qAsConst(d->projects)) if (auto folderProject = qobject_cast<VisualStudioSolutionFolderProject *>(project)) list.push_back(folderProject); return list; diff --git a/src/plugins/generator/visualstudio/visualstudiogenerator.cpp b/src/plugins/generator/visualstudio/visualstudiogenerator.cpp index 47f0363a6..04fc5a52e 100644 --- a/src/plugins/generator/visualstudio/visualstudiogenerator.cpp +++ b/src/plugins/generator/visualstudio/visualstudiogenerator.cpp @@ -130,7 +130,8 @@ public: const GeneratableProductData &productData) override { Q_UNUSED(project); Q_UNUSED(projectData); - for (const auto &dep : productData.dependencies()) { + const auto dependencies = productData.dependencies(); + for (const auto &dep : dependencies) { generator->d->solution->addDependency( generator->d->solutionProjects.value(productData.name()), generator->d->solutionProjects.value(dep)); @@ -190,7 +191,7 @@ void VisualStudioGenerator::addPropertySheets(const GeneratableProject &project) void VisualStudioGenerator::addPropertySheets( const std::shared_ptr<MSBuildTargetProject> &targetProject) { - for (const auto &pair : d->propertySheetNames) { + for (const auto &pair : qAsConst(d->propertySheetNames)) { targetProject->appendPropertySheet( QStringLiteral("$(SolutionDir)\\") + pair.first, pair.second); } @@ -221,7 +222,8 @@ static void addDefaultGlobalSections(const GeneratableProject &topLevelProject, QStringLiteral("ProjectConfigurationPlatforms"), solution); solution->appendGlobalSection(projectConfigurationPlatformsSection); projectConfigurationPlatformsSection->setPost(true); - for (const auto project : solution->projects()) { + const auto projects = solution->projects(); + for (const auto project : projects) { for (const auto &qbsProject : topLevelProject.projects) { projectConfigurationPlatformsSection->appendProperty( QStringLiteral("%1.%2.ActiveCfg") diff --git a/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs b/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs index 7633b3ebe..fe3cacd6d 100644 --- a/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs +++ b/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs @@ -92,7 +92,7 @@ Project { Rule { multiplex: true explicitlyDependsOnFromDependencies: "the_tag" - excludedAuxiliaryInputs: "the_other_tag" + excludedInputs: "the_other_tag" Artifact { filePath: "dummy3.txt" fileTags: "p_type" diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index 58150150a..c998b81e8 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -2268,8 +2268,12 @@ void TestApi::processResult() QCOMPARE(expectedExitCode == 0, result.success()); QCOMPARE(result.error(), QProcess::UnknownError); struct CheckParams { - CheckParams(bool r, const QString &f, const QByteArray &c, const QStringList &co) - : redirect(r), fileName(f), expectedContent(c), consoleOutput(co) {} + CheckParams(bool r, QString f, QByteArray c, QStringList co) + : redirect(r) + , fileName(std::move(f)) + , expectedContent(std::move(c)) + , consoleOutput(std::move(co)) + {} bool redirect; QString fileName; QByteArray expectedContent; @@ -2847,7 +2851,8 @@ void TestApi::toolInModule() const QList<qbs::ProductData> products = projectData.products(); QCOMPARE(products.size(), 1); const qbs::ProductData product = products.front(); - for (const qbs::GroupData &group : product.groups()) + const auto groups = product.groups(); + for (const qbs::GroupData &group : groups) QVERIFY(group.name() != "thetool binary"); const std::unique_ptr<qbs::BuildJob> buildJob(setupJob->project() .buildAllProducts(qbs::BuildOptions())); diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index bc187b210..ca11e4e3e 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -6093,14 +6093,14 @@ static bool haveInnoSetup(const Profile &profile) QStringList paths = QProcessEnvironment::systemEnvironment().value("PATH") .split(HostOsInfo::pathListSeparator(), QString::SkipEmptyParts); - for (const QString &key : regKeys) { + for (const QString &key : qAsConst(regKeys)) { QSettings settings(key, QSettings::NativeFormat); QString str = settings.value(QStringLiteral("InstallLocation")).toString(); if (!str.isEmpty()) paths.prepend(str); } - for (const QString &path : paths) { + for (const QString &path : qAsConst(paths)) { if (regularFileExists(QDir::fromNativeSeparators(path) + HostOsInfo::appendExecutableSuffix(QStringLiteral("/ISCC")))) return true; diff --git a/tests/auto/blackbox/tst_blackboxapple.cpp b/tests/auto/blackbox/tst_blackboxapple.cpp index 7cbc07b95..d9cabe270 100644 --- a/tests/auto/blackbox/tst_blackboxapple.cpp +++ b/tests/auto/blackbox/tst_blackboxapple.cpp @@ -749,7 +749,8 @@ void TestBlackboxApple::xcode() QVERIFY2(xcodebuildShowSdks.waitForStarted(), qPrintable(xcodebuildShowSdks.errorString())); QVERIFY2(xcodebuildShowSdks.waitForFinished(), qPrintable(xcodebuildShowSdks.errorString())); QVERIFY2(xcodebuildShowSdks.exitCode() == 0, qPrintable(xcodebuildShowSdks.readAllStandardError().constData())); - for (const QString &line : QString::fromLocal8Bit(xcodebuildShowSdks.readAllStandardOutput().trimmed()).split('\n', QString::SkipEmptyParts)) { + const auto lines = QString::fromLocal8Bit(xcodebuildShowSdks.readAllStandardOutput().trimmed()).split('\n', QString::SkipEmptyParts); + for (const QString &line : lines) { static const std::regex regexp("^.+\\s+\\-sdk\\s+([a-z]+)([0-9]+\\.[0-9]+)$"); const auto ln = line.toStdString(); std::smatch match; diff --git a/tests/auto/blackbox/tst_clangdb.cpp b/tests/auto/blackbox/tst_clangdb.cpp index 6a4072dd8..3a6dd2d92 100644 --- a/tests/auto/blackbox/tst_clangdb.cpp +++ b/tests/auto/blackbox/tst_clangdb.cpp @@ -111,7 +111,8 @@ void TestClangDb::ensureBuildTreeCreated() if (m_qbsStdout.contains("is msvc") || m_qbsStdout.contains("is mingw")) { sanitizeOutput(&m_qbsStdout); - for (const auto &line : m_qbsStdout.split('\n')) { + const auto lines = m_qbsStdout.split('\n'); + for (const auto &line : lines) { static const QByteArray includeEnv = "INCLUDE="; static const QByteArray libEnv = "LIB="; static const QByteArray pathEnv = "PATH="; diff --git a/tests/auto/tools/tst_tools.cpp b/tests/auto/tools/tst_tools.cpp index da40a2dc6..a6c699232 100644 --- a/tests/auto/tools/tst_tools.cpp +++ b/tests/auto/tools/tst_tools.cpp @@ -679,10 +679,10 @@ void TestTools::set_begin() Set<int> set2 = set1; { - Set<int>::const_iterator i = set1.constBegin(); - Set<int>::const_iterator j = set1.cbegin(); - Set<int>::const_iterator k = set2.constBegin(); - Set<int>::const_iterator ell = set2.cbegin(); + const auto i = set1.constBegin(); + const auto j = set1.cbegin(); + const auto k = set2.constBegin(); + const auto ell = set2.cbegin(); QVERIFY(i == j); QVERIFY(k == ell); @@ -691,10 +691,10 @@ void TestTools::set_begin() set1.insert(44); { - Set<int>::const_iterator i = set1.constBegin(); - Set<int>::const_iterator j = set1.cbegin(); - Set<int>::const_iterator k = set2.constBegin(); - Set<int>::const_iterator ell = set2.cbegin(); + const auto i = set1.constBegin(); + const auto j = set1.cbegin(); + const auto k = set2.constBegin(); + const auto ell = set2.cbegin(); QVERIFY(i == j); QVERIFY(k == ell); @@ -703,10 +703,10 @@ void TestTools::set_begin() set2 = set1; { - Set<int>::const_iterator i = set1.constBegin(); - Set<int>::const_iterator j = set1.cbegin(); - Set<int>::const_iterator k = set2.constBegin(); - Set<int>::const_iterator ell = set2.cbegin(); + const auto i = set1.constBegin(); + const auto j = set1.cbegin(); + const auto k = set2.constBegin(); + const auto ell = set2.cbegin(); QVERIFY(i == j); QVERIFY(k == ell); @@ -719,10 +719,10 @@ void TestTools::set_end() Set<int> set2 = set1; { - Set<int>::const_iterator i = set1.constEnd(); - Set<int>::const_iterator j = set1.cend(); - Set<int>::const_iterator k = set2.constEnd(); - Set<int>::const_iterator ell = set2.cend(); + const auto i = set1.constEnd(); + const auto j = set1.cend(); + const auto k = set2.constEnd(); + const auto ell = set2.cend(); QVERIFY(i == j); QVERIFY(k == ell); @@ -734,10 +734,10 @@ void TestTools::set_end() set1.insert(44); { - Set<int>::const_iterator i = set1.constEnd(); - Set<int>::const_iterator j = set1.cend(); - Set<int>::const_iterator k = set2.constEnd(); - Set<int>::const_iterator ell = set2.cend(); + const auto i = set1.constEnd(); + const auto j = set1.cend(); + const auto k = set2.constEnd(); + const auto ell = set2.cend(); QVERIFY(i == j); QVERIFY(k == ell); @@ -749,10 +749,10 @@ void TestTools::set_end() set2 = set1; { - Set<int>::const_iterator i = set1.constEnd(); - Set<int>::const_iterator j = set1.cend(); - Set<int>::const_iterator k = set2.constEnd(); - Set<int>::const_iterator ell = set2.cend(); + const auto i = set1.constEnd(); + const auto j = set1.cend(); + const auto k = set2.constEnd(); + const auto ell = set2.cend(); QVERIFY(i == j); QVERIFY(k == ell); |