mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-03 11:52:19 +00:00
Correctly clone able vars across subs
This commit is contained in:
parent
9c88534758
commit
46b741e9dd
2 changed files with 43 additions and 16 deletions
|
@ -821,11 +821,14 @@ fn deep_copy_type_vars<C: CopyEnv>(
|
|||
let new_content = match content {
|
||||
// The vars for which we want to do something interesting.
|
||||
FlexVar(opt_name) => FlexVar(opt_name.map(|n| env.clone_name(n))),
|
||||
FlexAbleVar(opt_name, ability) => {
|
||||
FlexAbleVar(opt_name.map(|n| env.clone_name(n)), ability)
|
||||
}
|
||||
FlexAbleVar(opt_name, abilities) => FlexAbleVar(
|
||||
opt_name.map(|n| env.clone_name(n)),
|
||||
env.clone_lambda_names(abilities),
|
||||
),
|
||||
RigidVar(name) => RigidVar(env.clone_name(name)),
|
||||
RigidAbleVar(name, ability) => RigidAbleVar(env.clone_name(name), ability),
|
||||
RigidAbleVar(name, abilities) => {
|
||||
RigidAbleVar(env.clone_name(name), env.clone_lambda_names(abilities))
|
||||
}
|
||||
|
||||
// Everything else is a mechanical descent.
|
||||
Structure(flat_type) => match flat_type {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue