Skip to main content

ResolutionChecker

Trait ResolutionChecker 

Source
pub trait ResolutionChecker {
    // Required method
    fn typecheck_projection(
        &self,
        delta: &BTreeMap<SigId, Option<StageId>>,
    ) -> Vec<String>;
}
Expand description

Injected composer + type-checker for merge resolutions.

lex-vcs deliberately does not depend on lex-store, so a merge session cannot compose a program from stage ids on its own — it only knows the shape of the merge (which sig resolves to which stage). The caller, which holds the store, supplies a checker so MergeSession::resolve_checked can type-check a resolution the moment it is submitted rather than only at commit. This mirrors crate::IntentResolver, the same dependency-injection seam the predicate engine uses.

Implementors receive the full projected post-merge delta against dst’s headsig_id -> Some(stage) to set that sig to stage, sig_id -> None to remove it. The implementor overlays the delta onto dst’s current head, composes the stages, and type-checks: return the (possibly empty) list of type errors as strings. An empty vec means the resolution composes.

Required Methods§

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§