summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/build_engine/analysed_target/analysed_target.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/buildtool/build_engine/analysed_target/analysed_target.cpp b/src/buildtool/build_engine/analysed_target/analysed_target.cpp
index 7124e672..bae35ada 100644
--- a/src/buildtool/build_engine/analysed_target/analysed_target.cpp
+++ b/src/buildtool/build_engine/analysed_target/analysed_target.cpp
@@ -21,6 +21,24 @@ void CollectNonKnownArtifacts(
CollectNonKnownArtifacts(val, artifacts, traversed);
}
}
+ else if (expr->IsNode()) {
+ auto const& node = expr->Node();
+ if (node.IsAbstract()) {
+ CollectNonKnownArtifacts(
+ node.GetAbstract().target_fields, artifacts, traversed);
+ }
+ else {
+ // value node
+ CollectNonKnownArtifacts(node.GetValue(), artifacts, traversed);
+ }
+ }
+ else if (expr->IsResult()) {
+ auto const& result = expr->Result();
+ CollectNonKnownArtifacts(
+ result.artifact_stage, artifacts, traversed);
+ CollectNonKnownArtifacts(result.runfiles, artifacts, traversed);
+ CollectNonKnownArtifacts(result.provides, artifacts, traversed);
+ }
else if (expr->IsArtifact()) {
auto const& artifact = expr->Artifact();
if (not artifact.IsKnown()) {