aboutsummaryrefslogtreecommitdiffstats
path: root/src/access/screen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/access/screen.rs')
-rw-r--r--src/access/screen.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/access/screen.rs b/src/access/screen.rs
index 690e032..1c6c8c7 100644
--- a/src/access/screen.rs
+++ b/src/access/screen.rs
@@ -384,6 +384,8 @@ pub(crate) fn apply(
// What the accepted, not applied yet, touch: a change making a map at one of these
// paths is judged with them in (`rules`' maps made where there are none).
let mut unapplied: BTreeSet<Path> = BTreeSet::new();
+ // What the rules read at the heads judged at, kept while they stay the same.
+ let mut reads = rules::Reads::default();
for (index, change) in ready.iter().enumerate() {
let hash = change.hash();
let committer = committers[index].as_deref();
@@ -464,7 +466,7 @@ pub(crate) fn apply(
let seen_at: Vec<ChangeHash> = seen_at.into_iter().collect();
let root = change.deps().is_empty();
let judged = if judging || root {
- rules::judge(
+ rules::judge_reading(
doc,
epoch,
&rules::Change {
@@ -476,6 +478,7 @@ pub(crate) fn apply(
paths: &paths[index],
ops: &ops[index],
},
+ &mut reads,
)
} else {
Ok(())