thread top-level expect region through

This commit is contained in:
Folkert 2022-07-18 22:42:07 +02:00 committed by Richard Feldman
parent 7e5476aa58
commit 9d294b459e
No known key found for this signature in database
GPG key ID: 7E4127D1E4241798
6 changed files with 83 additions and 26 deletions

View file

@ -672,7 +672,7 @@ pub struct MonomorphizedModule<'a> {
pub can_problems: MutMap<ModuleId, Vec<roc_problem::can::Problem>>,
pub type_problems: MutMap<ModuleId, Vec<solve::TypeError>>,
pub procedures: MutMap<(Symbol, ProcLayout<'a>), Proc<'a>>,
pub toplevel_expects: Vec<Symbol>,
pub toplevel_expects: VecMap<Symbol, Region>,
pub entry_point: EntryPoint<'a>,
pub exposed_to_host: ExposedToHost,
pub sources: MutMap<ModuleId, (PathBuf, Box<str>)>,
@ -767,7 +767,7 @@ enum Msg<'a> {
solved_subs: Solved<Subs>,
module_timing: ModuleTiming,
abilities_store: AbilitiesStore,
toplevel_expects: std::vec::Vec<Symbol>,
toplevel_expects: VecMap<Symbol, Region>,
},
MadeSpecializations {
module_id: ModuleId,
@ -855,7 +855,7 @@ struct State<'a> {
pub module_cache: ModuleCache<'a>,
pub dependencies: Dependencies<'a>,
pub procedures: MutMap<(Symbol, ProcLayout<'a>), Proc<'a>>,
pub toplevel_expects: Vec<Symbol>,
pub toplevel_expects: VecMap<Symbol, Region>,
pub exposed_to_host: ExposedToHost,
/// This is the "final" list of IdentIds, after canonicalization and constraint gen
@ -924,7 +924,7 @@ impl<'a> State<'a> {
module_cache: ModuleCache::default(),
dependencies,
procedures: MutMap::default(),
toplevel_expects: Vec::new(),
toplevel_expects: VecMap::default(),
exposed_to_host: ExposedToHost::default(),
exposed_types,
arc_modules,
@ -4715,7 +4715,7 @@ fn build_pending_specializations<'a>(
let find_specializations_start = SystemTime::now();
let mut module_thunks = bumpalo::collections::Vec::new_in(arena);
let mut toplevel_expects = std::vec::Vec::new();
let mut toplevel_expects = VecMap::default();
let mut procs_base = ProcsBase {
partial_procs: BumpMap::default(),
@ -5014,7 +5014,9 @@ fn build_pending_specializations<'a>(
is_self_recursive: false,
};
toplevel_expects.push(symbol);
let region = declarations.expressions[index].region;
toplevel_expects.insert(symbol, region);
procs_base.partial_procs.insert(symbol, proc);
}
}