pub fn check(
base: &Tree,
ours: &Tree,
theirs: &Tree,
work: &Tree,
subjects: &[String],
) -> Vec<Verdict>Expand description
Verify a whole working tree against the three merge stages.
work holds the bytes on disk for every supported file — the dangling pass
needs the repo, not the file, because a definition deleted in a.py with
its caller in b.py is invisible to any per-file rule.
Every repo-wide question is asked ONCE and indexed, never per subject: each file is parsed at most once per version, and a vanished name is looked up in a file’s identifier set before any line of it is scanned. A merge with two thousand changed files is otherwise “every name × every file × every line”, which is a check that does not finish.