ClangToolRunner: Reuse LoopList

Instead of LoopRepeat + container capture.

Change-Id: I5bce612279cf63f6ad1237569b55baad9a98e2ce
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2024-01-25 14:21:03 +01:00
parent 507933467f
commit e1f0da4e20

View File

@@ -121,19 +121,19 @@ GroupItem clangToolTask(const AnalyzeUnits &units,
FilePath outputFilePath;
};
const Storage<ClangToolStorage> storage;
const LoopRepeat repeater(units.size());
const LoopList iterator(units);
const auto mainToolArguments = [units, input, repeater](const ClangToolStorage &data) {
const auto mainToolArguments = [input, iterator](const ClangToolStorage &data) {
QStringList result;
result << "-export-fixes=" + data.outputFilePath.nativePath();
if (!input.overlayFilePath.isEmpty() && isVFSOverlaySupported(data.executable))
result << "--vfsoverlay=" + input.overlayFilePath;
result << units[repeater.iteration()].file.nativePath();
result << iterator->file.nativePath();
return result;
};
const auto onSetup = [storage, units, input, setupHandler, repeater] {
const AnalyzeUnit &unit = units[repeater.iteration()];
const auto onSetup = [storage, input, setupHandler, iterator] {
const AnalyzeUnit &unit = *iterator;
if (setupHandler && !setupHandler(unit))
return SetupResult::StopWithError;
@@ -153,8 +153,8 @@ GroupItem clangToolTask(const AnalyzeUnits &units,
return SetupResult::Continue;
};
const auto onProcessSetup = [storage, units, input, mainToolArguments, repeater](Process &process) {
const AnalyzeUnit &unit = units[repeater.iteration()];
const auto onProcessSetup = [storage, input, mainToolArguments, iterator](Process &process) {
const AnalyzeUnit &unit = *iterator;
process.setEnvironment(input.environment);
process.setUseCtrlCStub(true);
process.setLowPriority();
@@ -171,13 +171,13 @@ GroupItem clangToolTask(const AnalyzeUnits &units,
qCDebug(LOG).noquote() << "Starting" << commandLine.toUserOutput();
process.setCommand(commandLine);
};
const auto onProcessDone = [storage, units, input, outputHandler, repeater](
const auto onProcessDone = [storage, input, outputHandler, iterator](
const Process &process, DoneWith result) {
qCDebug(LOG).noquote() << "Output:\n" << process.cleanedStdOut();
if (!outputHandler)
return;
const AnalyzeUnit &unit = units[repeater.iteration()];
const AnalyzeUnit &unit = *iterator;
if (result == DoneWith::Success) {
const QString stdErr = process.cleanedStdErr();
if (stdErr.isEmpty())
@@ -208,7 +208,7 @@ GroupItem clangToolTask(const AnalyzeUnits &units,
input.diagnosticsFilter);
data.setFutureSynchronizer(ExtensionSystem::PluginManager::futureSynchronizer());
};
const auto onReadDone = [storage, units, input, outputHandler, repeater](
const auto onReadDone = [storage, input, outputHandler, iterator](
const Async<expected_str<Diagnostics>> &data, DoneWith result) {
if (!outputHandler)
return;
@@ -221,7 +221,7 @@ GroupItem clangToolTask(const AnalyzeUnits &units,
else
error = diagnosticsResult.error();
outputHandler({ok,
units[repeater.iteration()].file,
iterator->file,
storage->outputFilePath,
diagnostics,
input.tool,
@@ -231,7 +231,7 @@ GroupItem clangToolTask(const AnalyzeUnits &units,
return Group {
parallelLimit(qMax(1, input.runSettings.parallelJobs())),
finishAllAndSuccess,
repeater,
iterator,
Group {
storage,
onGroupSetup(onSetup),