diff options
Diffstat (limited to 'src/access/screen.rs')
| -rw-r--r-- | src/access/screen.rs | 5 |
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(()) |
