diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2019-02-19 23:13:54 +0100 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2019-03-06 18:13:43 +0000 |
commit | f3056e49c3b2443c5dd9abf78c46381fdbbbd731 (patch) | |
tree | d435db1321f25287eda1481ba16b9d3cfab4b40a /src/lib | |
parent | 967d67664b53169bf958dc1ea61ab014d16c56e6 (diff) |
Fix calls to non-const begin()/end() in range-for loops
This fixes -Wclazy-range-loop
Change-Id: I08a435b700017cdbe27fbfdbda6e26840d9a3568
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'src/lib')
27 files changed, 118 insertions, 67 deletions
diff --git a/src/lib/corelib/api/internaljobs.cpp b/src/lib/corelib/api/internaljobs.cpp index 4d06821fd..32f288659 100644 --- a/src/lib/corelib/api/internaljobs.cpp +++ b/src/lib/corelib/api/internaljobs.cpp @@ -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/project.cpp b/src/lib/corelib/api/project.cpp index abb053991..f7c57611d 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; } @@ -704,11 +707,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); } } @@ -784,7 +790,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 a3e6eac25..3220b0e37 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..f65cc6e3a 100644 --- a/src/lib/corelib/api/runenvironment.cpp +++ b/src/lib/corelib/api/runenvironment.cpp @@ -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/cycledetector.cpp b/src/lib/corelib/buildgraph/cycledetector.cpp index 95afba87d..a008cc096 100644 --- a/src/lib/corelib/buildgraph/cycledetector.cpp +++ b/src/lib/corelib/buildgraph/cycledetector.cpp @@ -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/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp index 8f71e1ea3..444ab568f 100644 --- a/src/lib/corelib/buildgraph/executor.cpp +++ b/src/lib/corelib/buildgraph/executor.cpp @@ -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/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp index 68f3b744b..48722186d 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); @@ -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/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/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp index 7ff64a9ef..1bc0cdedb 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.cpp +++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp @@ -308,7 +308,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; } @@ -558,9 +558,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/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/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/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..4e073a36a 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -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/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/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/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..cbec7b457 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))); } diff --git a/src/lib/corelib/tools/preferences.cpp b/src/lib/corelib/tools/preferences.cpp index ca3fe8378..644c2722f 100644 --- a/src/lib/corelib/tools/preferences.cpp +++ b/src/lib/corelib/tools/preferences.cpp @@ -131,14 +131,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/settingscreator.cpp b/src/lib/corelib/tools/settingscreator.cpp index 8479a67dc..cddc3b93d 100644 --- a/src/lib/corelib/tools/settingscreator.cpp +++ b/src/lib/corelib/tools/settingscreator.cpp @@ -102,7 +102,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/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/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; |