add storage subs to ExposedModuleTypes

This commit is contained in:
Folkert 2022-03-11 10:15:33 +01:00
parent 28abf5b1b8
commit 78f5526db3
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
2 changed files with 18 additions and 3 deletions

View file

@ -13,7 +13,12 @@ pub type SubsByModule = MutMap<ModuleId, ExposedModuleTypes>;
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub enum ExposedModuleTypes { pub enum ExposedModuleTypes {
Invalid, Invalid,
Valid(MutMap<Symbol, SolvedType>, MutMap<Symbol, Alias>), Valid {
solved_types: MutMap<Symbol, SolvedType>,
aliases: MutMap<Symbol, Alias>,
stored_vars_by_symbol: Vec<(Symbol, Variable)>,
storage_subs: roc_types::subs::StorageSubs,
},
} }
pub fn constrain_module( pub fn constrain_module(
@ -174,7 +179,12 @@ pub fn pre_constrain_imports(
}; };
match exposed_types.get(&module_id) { match exposed_types.get(&module_id) {
Some(ExposedModuleTypes::Valid(solved_types, new_aliases)) => { Some(ExposedModuleTypes::Valid {
solved_types,
aliases: new_aliases,
storage_subs,
stored_vars_by_symbol,
}) => {
// If the exposed value was invalid (e.g. it didn't have // If the exposed value was invalid (e.g. it didn't have
// a corresponding definition), it won't have an entry // a corresponding definition), it won't have an entry
// in solved_types // in solved_types

View file

@ -1832,7 +1832,12 @@ fn update<'a>(
} else { } else {
state.exposed_types.insert( state.exposed_types.insert(
module_id, module_id,
ExposedModuleTypes::Valid(solved_module.solved_types, solved_module.aliases), ExposedModuleTypes::Valid {
solved_types: solved_module.solved_types,
aliases: solved_module.aliases,
stored_vars_by_symbol: solved_module.stored_vars_by_symbol,
storage_subs: solved_module.storage_subs,
},
); );
if state.goal_phase > Phase::SolveTypes { if state.goal_phase > Phase::SolveTypes {