mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 04:08:19 +00:00
Remove param arguments from TOO MANY ARGS error
This commit is contained in:
parent
8b9cb22f49
commit
658c6963c5
7 changed files with 173 additions and 8 deletions
|
@ -4627,6 +4627,7 @@ struct SolveResult {
|
|||
exposed_vars_by_symbol: Vec<(Symbol, Variable)>,
|
||||
problems: Vec<TypeError>,
|
||||
abilities_store: AbilitiesStore,
|
||||
imported_modules_with_params: Vec<ModuleId>,
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
checkmate: Option<roc_checkmate::Collector>,
|
||||
|
@ -4672,6 +4673,11 @@ fn run_solve_solve(
|
|||
&mut imported_flex_vars,
|
||||
);
|
||||
|
||||
let imported_modules_with_params = imported_param_vars
|
||||
.keys()
|
||||
.copied()
|
||||
.collect::<Vec<ModuleId>>();
|
||||
|
||||
let actual_constraint = constraints.let_import_constraint(
|
||||
imported_rigid_vars,
|
||||
imported_flex_vars,
|
||||
|
@ -4754,6 +4760,7 @@ fn run_solve_solve(
|
|||
exposed_vars_by_symbol,
|
||||
problems: errors,
|
||||
abilities_store: resolved_abilities_store,
|
||||
imported_modules_with_params,
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
checkmate,
|
||||
|
@ -4786,6 +4793,7 @@ fn run_solve<'a>(
|
|||
let aliases = module.aliases.clone();
|
||||
|
||||
let opt_params_var = module.module_params.as_ref().map(|params| params.whole_var);
|
||||
let home_has_params = opt_params_var.is_some();
|
||||
|
||||
let mut module = module;
|
||||
let loc_expects = std::mem::take(&mut module.loc_expects);
|
||||
|
@ -4820,6 +4828,8 @@ fn run_solve<'a>(
|
|||
exposed_vars_by_symbol,
|
||||
problems: vec![],
|
||||
abilities_store: abilities,
|
||||
// todo: agus
|
||||
imported_modules_with_params: vec![],
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
checkmate: None,
|
||||
|
@ -4847,8 +4857,9 @@ fn run_solve<'a>(
|
|||
solved: mut solved_subs,
|
||||
solved_implementations,
|
||||
exposed_vars_by_symbol,
|
||||
problems,
|
||||
mut problems,
|
||||
abilities_store,
|
||||
imported_modules_with_params,
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
checkmate,
|
||||
|
@ -4863,6 +4874,14 @@ fn run_solve<'a>(
|
|||
&abilities_store,
|
||||
);
|
||||
|
||||
// todo: check exec mode
|
||||
roc_lower_params::type_error::remove_module_param_arguments(
|
||||
&mut problems,
|
||||
home_has_params,
|
||||
&decls.symbols,
|
||||
imported_modules_with_params,
|
||||
);
|
||||
|
||||
let solved_module = SolvedModule {
|
||||
exposed_vars_by_symbol,
|
||||
problems,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue