remove more unneeded alias things

This commit is contained in:
Folkert 2020-10-31 15:33:43 +01:00
parent 09ad286123
commit 4bd723b353
2 changed files with 3 additions and 64 deletions

View File

@ -112,60 +112,9 @@ pub fn constrain_imported_values(
)
}
pub fn constrain_imported_aliases(
aliases: MutMap<Symbol, Alias>,
body_con: Constraint,
var_store: &mut VarStore,
) -> Constraint {
use Constraint::*;
for (symbol, imported_alias) in aliases {
let mut vars = Vec::with_capacity(imported_alias.vars.len());
let mut substitution = ImMap::default();
for Located {
region,
value: (lowercase, old_var),
} in &imported_alias.vars
{
let new_var = var_store.fresh();
vars.push(Located::at(*region, (lowercase.clone(), new_var)));
substitution.insert(*old_var, Type::Variable(new_var));
}
let mut actual = imported_alias.typ.clone();
actual.substitute(&substitution);
let mut hidden_variables = MutSet::default();
hidden_variables.extend(actual.variables());
for loc_var in vars.iter() {
hidden_variables.remove(&loc_var.value.1);
}
let alias = Alias {
vars,
hidden_variables,
region: imported_alias.region,
uniqueness: imported_alias.uniqueness,
typ: actual,
};
}
Let(Box::new(LetConstraint {
rigid_vars: Vec::new(),
flex_vars: Vec::new(),
def_types: SendMap::default(),
defs_constraint: True,
ret_constraint: body_con,
}))
}
/// Run pre_constrain_imports to get imported_symbols and imported_aliases.
pub fn constrain_imports(
imported_symbols: Vec<Import>,
imported_aliases: MutMap<Symbol, Alias>,
constraint: Constraint,
var_store: &mut VarStore,
) -> Constraint {
@ -177,7 +126,7 @@ pub fn constrain_imports(
// output.ftv.insert(var, format!("internal_{:?}", var).into());
// }
constrain_imported_aliases(imported_aliases, constraint, var_store)
constraint
}
pub struct ConstrainableImports {

View File

@ -772,7 +772,6 @@ enum BuildTask<'a> {
module: Module,
ident_ids: IdentIds,
imported_symbols: Vec<Import>,
imported_aliases: MutMap<Symbol, Alias>,
module_timing: ModuleTiming,
constraint: Constraint,
var_store: VarStore,
@ -2004,7 +2003,7 @@ impl<'a> BuildTask<'a> {
// (which would be more expensive for the main thread).
let ConstrainableImports {
imported_symbols,
imported_aliases,
imported_aliases: _,
unused_imports,
} = pre_constrain_imports(
home,
@ -2027,7 +2026,6 @@ impl<'a> BuildTask<'a> {
module,
ident_ids,
imported_symbols,
imported_aliases,
constraint,
var_store,
src,
@ -2043,7 +2041,6 @@ fn run_solve<'a>(
ident_ids: IdentIds,
mut module_timing: ModuleTiming,
imported_symbols: Vec<Import>,
imported_aliases: MutMap<Symbol, Alias>,
constraint: Constraint,
mut var_store: VarStore,
decls: Vec<Declaration>,
@ -2054,12 +2051,7 @@ fn run_solve<'a>(
// Finish constraining the module by wrapping the existing Constraint
// in the ones we just computed. We can do this off the main thread.
let constraint = constrain_imports(
imported_symbols,
imported_aliases,
constraint,
&mut var_store,
);
let constraint = constrain_imports(imported_symbols, constraint, &mut var_store);
let constrain_end = SystemTime::now();
@ -2535,7 +2527,6 @@ fn run_task<'a>(
module,
module_timing,
imported_symbols,
imported_aliases,
constraint,
var_store,
ident_ids,
@ -2546,7 +2537,6 @@ fn run_task<'a>(
ident_ids,
module_timing,
imported_symbols,
imported_aliases,
constraint,
var_store,
declarations,