only store exposed symbols in Module

This commit is contained in:
Folkert 2020-12-26 17:18:03 +01:00
parent 58507fa7d9
commit 0d17e9a879
2 changed files with 12 additions and 6 deletions

View file

@ -21,7 +21,7 @@ use roc_types::types::Alias;
pub struct Module { pub struct Module {
pub module_id: ModuleId, pub module_id: ModuleId,
pub exposed_imports: MutMap<Symbol, Variable>, pub exposed_imports: MutMap<Symbol, Variable>,
pub exposed_vars_by_symbol: Vec<(Symbol, Variable)>, pub exposed_symbols: MutSet<Symbol>,
pub references: MutSet<Symbol>, pub references: MutSet<Symbol>,
pub aliases: MutMap<Symbol, Alias>, pub aliases: MutMap<Symbol, Alias>,
pub rigid_variables: MutMap<Variable, Lowercase>, pub rigid_variables: MutMap<Variable, Lowercase>,

View file

@ -2791,14 +2791,12 @@ fn run_solve<'a>(
let module_id = module.module_id; let module_id = module.module_id;
let Module { let Module {
exposed_vars_by_symbol, exposed_symbols,
aliases, aliases,
rigid_variables, rigid_variables,
.. ..
} = module; } = module;
let exposed_symbols: MutSet<Symbol> = exposed_vars_by_symbol.iter().map(|(s, _)| *s).collect();
let (solved_subs, solved_env, problems) = let (solved_subs, solved_env, problems) =
roc_solve::module::run_solve(aliases, rigid_variables, constraint, var_store); roc_solve::module::run_solve(aliases, rigid_variables, constraint, var_store);
@ -3079,7 +3077,11 @@ fn fabricate_effects_module<'a>(
let module = Module { let module = Module {
module_id, module_id,
exposed_imports: module_output.exposed_imports, exposed_imports: module_output.exposed_imports,
exposed_vars_by_symbol: module_output.exposed_vars_by_symbol, exposed_symbols: module_output
.exposed_vars_by_symbol
.iter()
.map(|t| t.0)
.collect(),
references: module_output.references, references: module_output.references,
aliases: module_output.aliases, aliases: module_output.aliases,
rigid_variables: module_output.rigid_variables, rigid_variables: module_output.rigid_variables,
@ -3203,7 +3205,11 @@ fn canonicalize_and_constrain<'a>(
let module = Module { let module = Module {
module_id, module_id,
exposed_imports: module_output.exposed_imports, exposed_imports: module_output.exposed_imports,
exposed_vars_by_symbol: module_output.exposed_vars_by_symbol, exposed_symbols: module_output
.exposed_vars_by_symbol
.iter()
.map(|t| t.0)
.collect(),
references: module_output.references, references: module_output.references,
aliases: module_output.aliases, aliases: module_output.aliases,
rigid_variables: module_output.rigid_variables, rigid_variables: module_output.rigid_variables,