diff --git a/compiler/can/src/effect_module.rs b/compiler/can/src/effect_module.rs index 6bba0ed464..96350ad283 100644 --- a/compiler/can/src/effect_module.rs +++ b/compiler/can/src/effect_module.rs @@ -1,6 +1,5 @@ use crate::annotation::IntroducedVariables; use crate::def::{Declaration, Def}; -use crate::env::Env; use crate::expr::{ClosureData, Expr, Recursive}; use crate::pattern::Pattern; use crate::scope::Scope; @@ -35,7 +34,6 @@ pub(crate) struct HostedGeneratedFunctions { /// For this alias we implement the functions specified in HostedGeneratedFunctions with the /// standard implementation. pub(crate) fn build_effect_builtins( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, var_store: &mut VarStore, @@ -45,7 +43,7 @@ pub(crate) fn build_effect_builtins( ) { macro_rules! helper { ($f:expr) => {{ - let (symbol, def) = $f(env, scope, effect_symbol, var_store); + let (symbol, def) = $f(scope, effect_symbol, var_store); // make the outside world know this symbol exists exposed_symbols.insert(symbol); @@ -92,13 +90,12 @@ pub(crate) fn build_effect_builtins( } macro_rules! new_symbol { - ($scope:expr, $env:expr, $name:expr) => {{ + ($scope:expr, $name:expr) => {{ $scope.introduce($name.into(), Region::zero()).unwrap() }}; } fn build_effect_always( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, var_store: &mut VarStore, @@ -224,7 +221,6 @@ fn build_effect_always( } fn build_effect_map( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, var_store: &mut VarStore, @@ -418,7 +414,6 @@ fn build_effect_map( } fn build_effect_after( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, var_store: &mut VarStore, @@ -667,7 +662,6 @@ fn force_effect( } fn build_effect_forever( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, var_store: &mut VarStore, @@ -724,8 +718,7 @@ fn build_effect_forever( let effect = { scope.introduce("effect".into(), Region::zero()).unwrap() }; - let body = - build_effect_forever_body(env, scope, effect_symbol, forever_symbol, effect, var_store); + let body = build_effect_forever_body(scope, effect_symbol, forever_symbol, effect, var_store); let arguments = vec![(var_store.fresh(), Loc::at_zero(Pattern::Identifier(effect)))]; @@ -801,7 +794,6 @@ fn build_effect_forever( } fn build_effect_forever_body( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, forever_symbol: Symbol, @@ -814,14 +806,8 @@ fn build_effect_forever_body( .unwrap() }; - let inner_body = build_effect_forever_inner_body( - env, - scope, - effect_symbol, - forever_symbol, - effect, - var_store, - ); + let inner_body = + build_effect_forever_inner_body(scope, effect_symbol, forever_symbol, effect, var_store); let captured_symbols = vec![effect]; wrap_in_effect_thunk( @@ -834,7 +820,6 @@ fn build_effect_forever_body( } fn build_effect_forever_inner_body( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, forever_symbol: Symbol, @@ -934,17 +919,15 @@ fn build_effect_forever_inner_body( } fn build_effect_loop( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, var_store: &mut VarStore, ) -> (Symbol, Def) { - let loop_symbol = new_symbol!(scope, env, "loop"); - let state_symbol = new_symbol!(scope, env, "state"); - let step_symbol = new_symbol!(scope, env, "step"); + let loop_symbol = new_symbol!(scope, "loop"); + let state_symbol = new_symbol!(scope, "state"); + let step_symbol = new_symbol!(scope, "step"); let body = build_effect_loop_body( - env, scope, effect_symbol, loop_symbol, @@ -1070,7 +1053,6 @@ fn build_effect_loop( } fn build_effect_loop_body( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, loop_symbol: Symbol, @@ -1085,7 +1067,6 @@ fn build_effect_loop_body( }; let inner_body = build_effect_loop_inner_body( - env, scope, effect_symbol, loop_symbol, @@ -1127,7 +1108,6 @@ fn applied_tag_pattern( } fn build_effect_loop_inner_body( - env: &mut Env, scope: &mut Scope, effect_symbol: Symbol, loop_symbol: Symbol, @@ -1135,11 +1115,11 @@ fn build_effect_loop_inner_body( step_symbol: Symbol, var_store: &mut VarStore, ) -> Expr { - let thunk1_symbol = new_symbol!(scope, env, "thunk3"); - let thunk2_symbol = new_symbol!(scope, env, "thunk4"); + let thunk1_symbol = new_symbol!(scope, "thunk3"); + let thunk2_symbol = new_symbol!(scope, "thunk4"); - let new_state_symbol = new_symbol!(scope, env, "newState"); - let done_symbol = new_symbol!(scope, env, "done"); + let new_state_symbol = new_symbol!(scope, "newState"); + let done_symbol = new_symbol!(scope, "done"); // Effect thunk1 = step state let thunk_from_effect = { @@ -1262,7 +1242,6 @@ fn build_effect_loop_inner_body( } pub fn build_host_exposed_def( - env: &mut Env, scope: &mut Scope, symbol: Symbol, ident: &str, diff --git a/compiler/can/src/env.rs b/compiler/can/src/env.rs index c28b54a038..a9398cb138 100644 --- a/compiler/can/src/env.rs +++ b/compiler/can/src/env.rs @@ -2,7 +2,7 @@ use crate::procedure::References; use crate::scope::Scope; use roc_collections::{MutMap, VecSet}; use roc_module::ident::{Ident, Lowercase, ModuleName}; -use roc_module::symbol::{IdentIds, IdentIdsByModule, ModuleId, ModuleIds, Symbol}; +use roc_module::symbol::{ IdentIdsByModule, ModuleId, ModuleIds, Symbol}; use roc_problem::can::{Problem, RuntimeError}; use roc_region::all::{Loc, Region}; diff --git a/compiler/can/src/expr.rs b/compiler/can/src/expr.rs index 4b67071d4e..515fb90930 100644 --- a/compiler/can/src/expr.rs +++ b/compiler/can/src/expr.rs @@ -407,7 +407,6 @@ pub fn canonicalize_expr<'a>( fields, update: loc_update, } => { - dbg!(&loc_update); let (can_update, update_out) = canonicalize_expr(env, var_store, scope, loc_update.region, &loc_update.value); if let Var(symbol) = &can_update.value { @@ -438,7 +437,6 @@ pub fn canonicalize_expr<'a>( ), } } else { - dbg!(&can_update.value); // only (optionally qualified) variables can be updated, not arbitrary expressions let error = roc_problem::can::RuntimeError::InvalidRecordUpdate { diff --git a/compiler/can/src/module.rs b/compiler/can/src/module.rs index 76d42a9855..05c43b52ee 100644 --- a/compiler/can/src/module.rs +++ b/compiler/can/src/module.rs @@ -362,7 +362,6 @@ pub fn canonicalize_module_defs<'a>( // NOTE this currently builds all functions, not just the ones that the user requested crate::effect_module::build_effect_builtins( - &mut env, &mut scope, effect_symbol, var_store, @@ -417,7 +416,6 @@ pub fn canonicalize_module_defs<'a>( }; let hosted_def = crate::effect_module::build_host_exposed_def( - &mut env, &mut scope, *symbol, &ident,