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 head — sig_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".