diff --git a/compiler/load_internal/src/file.rs b/compiler/load_internal/src/file.rs index 7bbee92e0e..62b1189f77 100644 --- a/compiler/load_internal/src/file.rs +++ b/compiler/load_internal/src/file.rs @@ -615,11 +615,7 @@ enum Msg<'a> { Many(Vec>), Header(ModuleHeader<'a>), Parsed(ParsedModule<'a>), - CanonicalizedAndConstrained { - constrained_module: ConstrainedModule, - canonicalization_problems: Vec, - module_docs: Option, - }, + CanonicalizedAndConstrained(CanAndCon), SolvedTypes { module_id: ModuleId, ident_ids: IdentIds, @@ -674,6 +670,13 @@ enum Msg<'a> { }, } +#[derive(Debug)] +struct CanAndCon { + constrained_module: ConstrainedModule, + canonicalization_problems: Vec, + module_docs: Option, +} + #[derive(Debug)] enum PlatformPath<'a> { NotSpecified, @@ -2004,11 +2007,11 @@ fn update<'a>( Ok(state) } - CanonicalizedAndConstrained { + CanonicalizedAndConstrained(CanAndCon { constrained_module, canonicalization_problems, module_docs, - } => { + }) => { let module_id = constrained_module.module.module_id; log!("generated constraints for {:?}", module_id); state @@ -3854,7 +3857,7 @@ fn canonicalize_and_constrain<'a>( aliases: MutMap, parsed: ParsedModule<'a>, skip_constraint_gen: bool, -) -> Result, LoadingProblem<'a>> { +) -> CanAndCon { let canonicalize_start = SystemTime::now(); let ParsedModule { @@ -3987,11 +3990,11 @@ fn canonicalize_and_constrain<'a>( module_timing, }; - Ok(Msg::CanonicalizedAndConstrained { + CanAndCon { constrained_module, canonicalization_problems: module_output.problems, module_docs, - }) + } } fn parse<'a>(arena: &'a Bump, header: ModuleHeader<'a>) -> Result, LoadingProblem<'a>> { @@ -4460,15 +4463,19 @@ fn run_task<'a>( exposed_symbols, aliases, skip_constraint_gen, - } => canonicalize_and_constrain( - arena, - &module_ids, - dep_idents, - exposed_symbols, - aliases, - parsed, - skip_constraint_gen, - ), + } => { + let can_and_con = canonicalize_and_constrain( + arena, + &module_ids, + dep_idents, + exposed_symbols, + aliases, + parsed, + skip_constraint_gen, + ); + + Ok(Msg::CanonicalizedAndConstrained(can_and_con)) + } Solve { module, module_timing,