summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/buildtool/build_engine/expression/evaluator.cpp4
2 files changed, 4 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 74a5450c..fbcc592e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,8 @@ Bug fixes on top of release `1.2.4`.
- Taintedness of "configure" targets is now propagated correctly.
- Missing atomic primitives added to the source code.
- A staging conflict in the test setup was fixed.
+- The expression `"disjoint_map_union"` did not verify disjointness
+ in all cases; this is fixed now.
## Release `1.2.4` (2023-12-19)
diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp
index d2cee809..f75c643e 100644
--- a/src/buildtool/build_engine/expression/evaluator.cpp
+++ b/src/buildtool/build_engine/expression/evaluator.cpp
@@ -307,8 +307,8 @@ auto Union(Expression::list_t const& dicts, size_t from, size_t to)
return entry;
}
size_t mid = from + (to - from) / 2;
- auto left = Union(dicts, from, mid);
- auto right = Union(dicts, mid, to);
+ auto left = Union<kDisjoint>(dicts, from, mid);
+ auto right = Union<kDisjoint>(dicts, mid, to);
if (left->Map().empty()) {
return right;
}