Skip to main content

check

Function check 

Source
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.