mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-02 08:11:12 +00:00
remove more unneeded alias things
This commit is contained in:
parent
09ad286123
commit
4bd723b353
2 changed files with 3 additions and 64 deletions
|
@ -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.
|
/// Run pre_constrain_imports to get imported_symbols and imported_aliases.
|
||||||
pub fn constrain_imports(
|
pub fn constrain_imports(
|
||||||
imported_symbols: Vec<Import>,
|
imported_symbols: Vec<Import>,
|
||||||
imported_aliases: MutMap<Symbol, Alias>,
|
|
||||||
constraint: Constraint,
|
constraint: Constraint,
|
||||||
var_store: &mut VarStore,
|
var_store: &mut VarStore,
|
||||||
) -> Constraint {
|
) -> Constraint {
|
||||||
|
@ -177,7 +126,7 @@ pub fn constrain_imports(
|
||||||
// output.ftv.insert(var, format!("internal_{:?}", var).into());
|
// output.ftv.insert(var, format!("internal_{:?}", var).into());
|
||||||
// }
|
// }
|
||||||
|
|
||||||
constrain_imported_aliases(imported_aliases, constraint, var_store)
|
constraint
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct ConstrainableImports {
|
pub struct ConstrainableImports {
|
||||||
|
|
|
@ -772,7 +772,6 @@ enum BuildTask<'a> {
|
||||||
module: Module,
|
module: Module,
|
||||||
ident_ids: IdentIds,
|
ident_ids: IdentIds,
|
||||||
imported_symbols: Vec<Import>,
|
imported_symbols: Vec<Import>,
|
||||||
imported_aliases: MutMap<Symbol, Alias>,
|
|
||||||
module_timing: ModuleTiming,
|
module_timing: ModuleTiming,
|
||||||
constraint: Constraint,
|
constraint: Constraint,
|
||||||
var_store: VarStore,
|
var_store: VarStore,
|
||||||
|
@ -2004,7 +2003,7 @@ impl<'a> BuildTask<'a> {
|
||||||
// (which would be more expensive for the main thread).
|
// (which would be more expensive for the main thread).
|
||||||
let ConstrainableImports {
|
let ConstrainableImports {
|
||||||
imported_symbols,
|
imported_symbols,
|
||||||
imported_aliases,
|
imported_aliases: _,
|
||||||
unused_imports,
|
unused_imports,
|
||||||
} = pre_constrain_imports(
|
} = pre_constrain_imports(
|
||||||
home,
|
home,
|
||||||
|
@ -2027,7 +2026,6 @@ impl<'a> BuildTask<'a> {
|
||||||
module,
|
module,
|
||||||
ident_ids,
|
ident_ids,
|
||||||
imported_symbols,
|
imported_symbols,
|
||||||
imported_aliases,
|
|
||||||
constraint,
|
constraint,
|
||||||
var_store,
|
var_store,
|
||||||
src,
|
src,
|
||||||
|
@ -2043,7 +2041,6 @@ fn run_solve<'a>(
|
||||||
ident_ids: IdentIds,
|
ident_ids: IdentIds,
|
||||||
mut module_timing: ModuleTiming,
|
mut module_timing: ModuleTiming,
|
||||||
imported_symbols: Vec<Import>,
|
imported_symbols: Vec<Import>,
|
||||||
imported_aliases: MutMap<Symbol, Alias>,
|
|
||||||
constraint: Constraint,
|
constraint: Constraint,
|
||||||
mut var_store: VarStore,
|
mut var_store: VarStore,
|
||||||
decls: Vec<Declaration>,
|
decls: Vec<Declaration>,
|
||||||
|
@ -2054,12 +2051,7 @@ fn run_solve<'a>(
|
||||||
|
|
||||||
// Finish constraining the module by wrapping the existing Constraint
|
// Finish constraining the module by wrapping the existing Constraint
|
||||||
// in the ones we just computed. We can do this off the main thread.
|
// in the ones we just computed. We can do this off the main thread.
|
||||||
let constraint = constrain_imports(
|
let constraint = constrain_imports(imported_symbols, constraint, &mut var_store);
|
||||||
imported_symbols,
|
|
||||||
imported_aliases,
|
|
||||||
constraint,
|
|
||||||
&mut var_store,
|
|
||||||
);
|
|
||||||
|
|
||||||
let constrain_end = SystemTime::now();
|
let constrain_end = SystemTime::now();
|
||||||
|
|
||||||
|
@ -2535,7 +2527,6 @@ fn run_task<'a>(
|
||||||
module,
|
module,
|
||||||
module_timing,
|
module_timing,
|
||||||
imported_symbols,
|
imported_symbols,
|
||||||
imported_aliases,
|
|
||||||
constraint,
|
constraint,
|
||||||
var_store,
|
var_store,
|
||||||
ident_ids,
|
ident_ids,
|
||||||
|
@ -2546,7 +2537,6 @@ fn run_task<'a>(
|
||||||
ident_ids,
|
ident_ids,
|
||||||
module_timing,
|
module_timing,
|
||||||
imported_symbols,
|
imported_symbols,
|
||||||
imported_aliases,
|
|
||||||
constraint,
|
constraint,
|
||||||
var_store,
|
var_store,
|
||||||
declarations,
|
declarations,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue