pub struct DiffInputs<'a> {
pub old_head: &'a BTreeMap<SigId, StageId>,
pub old_effects: &'a BTreeMap<SigId, EffectSet>,
pub old_imports: &'a ImportMap,
pub new_stages: &'a [Stage],
pub new_imports: &'a ImportMap,
pub diff: &'a DiffReport,
pub module_prefixes: &'a BTreeMap<String, String>,
}Fields§
§old_head: &'a BTreeMap<SigId, StageId>Current head SigId → StageId map.
old_effects: &'a BTreeMap<SigId, EffectSet>Effect set per sig at the current head.
old_imports: &'a ImportMapPer-file imports at the current head.
new_stages: &'a [Stage]Stages of the new program (post-canonicalize).
new_imports: &'a ImportMapPer-file imports of the new program.
diff: &'a DiffReportAST-diff between old and new sources, by name. Each removed/
renamed/modified entry carries its own resolved old_sig_id
(see diff_report’s doc comments) rather than this module
re-deriving one from a name-keyed lookup: a bare function name
is not unique across a package’s files (#818 — e.g. two files
legitimately both declaring a local validate helper with
different signatures), so a name -> SigId map here would
silently collapse distinct functions onto one SigId.
module_prefixes: &'a BTreeMap<String, String>Mangling prefix → package source file (schema_a1b2 →
src/schema.lex), for a multi-module package publish. A
declaration’s mangled name is <prefix>.<local>, so this maps
each AddFunction/AddType to its origin file, recorded as the
op’s in_file so export-git can de-flatten the package (#894).
Empty for a single-file publish (then in_file stays None and
OpIds are unchanged).