mirror of
https://github.com/roc-lang/roc.git
synced 2024-09-20 15:27:45 +03:00
remove more unneeded alias things
This commit is contained in:
parent
09ad286123
commit
4bd723b353
@ -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 {
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user