summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_engine')
-rw-r--r--src/buildtool/execution_engine/dag/dag.cpp20
-rw-r--r--src/buildtool/execution_engine/dag/dag.hpp15
-rw-r--r--src/buildtool/execution_engine/executor/executor.hpp10
3 files changed, 20 insertions, 25 deletions
diff --git a/src/buildtool/execution_engine/dag/dag.cpp b/src/buildtool/execution_engine/dag/dag.cpp
index 5d60dd01..6eb492a8 100644
--- a/src/buildtool/execution_engine/dag/dag.cpp
+++ b/src/buildtool/execution_engine/dag/dag.cpp
@@ -96,22 +96,18 @@ auto DependencyGraph::LinkNodePointers(
auto DependencyGraph::Add(std::vector<ActionDescription> const& actions)
-> bool {
- for (auto const& action : actions) {
- if (not AddAction(action)) {
- return false;
- }
- }
- return true;
+ return std::all_of(
+ actions.begin(), actions.end(), [this](auto const& action) {
+ return AddAction(action);
+ });
}
auto DependencyGraph::Add(std::vector<ActionDescription::Ptr> const& actions)
-> bool {
- for (auto const& action : actions) {
- if (not AddAction(*action)) {
- return false;
- }
- }
- return true;
+ return std::all_of(
+ actions.begin(), actions.end(), [this](auto const& action) {
+ return AddAction(*action);
+ });
}
auto DependencyGraph::AddArtifact(ArtifactDescription const& description)
diff --git a/src/buildtool/execution_engine/dag/dag.hpp b/src/buildtool/execution_engine/dag/dag.hpp
index 500ff0fc..bcc0cd48 100644
--- a/src/buildtool/execution_engine/dag/dag.hpp
+++ b/src/buildtool/execution_engine/dag/dag.hpp
@@ -163,6 +163,7 @@ class DirectedAcyclicGraph {
protected:
template <typename T_Node>
+ // NOLINTNEXTLINE(misc-no-recursion)
[[nodiscard]] static auto check_validity(
gsl::not_null<T_Node*> node) noexcept -> bool {
// Check node-specified validity (e.g. bipartiteness requirements)
@@ -560,13 +561,13 @@ class DependencyGraph : DirectedAcyclicGraph {
-> std::optional<ActionIdentifier>;
[[nodiscard]] auto IsValid() const noexcept -> bool {
- for (auto const& node : artifact_nodes_) {
- if (!DirectedAcyclicGraph::check_validity<
- std::remove_reference_t<decltype(*node)>>(&(*node))) {
- return false;
- }
- }
- return true;
+ return std::all_of(
+ artifact_nodes_.begin(),
+ artifact_nodes_.end(),
+ [](auto const& node) {
+ return DirectedAcyclicGraph::check_validity<
+ std::remove_reference_t<decltype(*node)>>(&(*node));
+ });
}
private:
diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp
index d46c290b..94c32b1f 100644
--- a/src/buildtool/execution_engine/executor/executor.hpp
+++ b/src/buildtool/execution_engine/executor/executor.hpp
@@ -237,12 +237,10 @@ class ExecutorImpl {
[[nodiscard]] static auto CheckOutputsExist(
IExecutionResponse::ArtifactInfos const& artifacts,
std::vector<Action::LocalPath> const& outputs) noexcept -> bool {
- for (auto const& output : outputs) {
- if (not artifacts.contains(output)) {
- return false;
- }
- }
- return true;
+ return std::all_of(
+ outputs.begin(), outputs.end(), [&artifacts](auto const& output) {
+ return artifacts.contains(output);
+ });
}
/// \brief Parse response and write object info to DAG's artifact nodes.