fix: scope issue when using when with a function call subject

This commit is contained in:
Kasey White
2023-02-12 04:53:01 -05:00
committed by Lucas
parent 2bda581fbd
commit e9883adf12
3 changed files with 76 additions and 5 deletions

View File

@@ -427,8 +427,13 @@ impl<'a> CodeGenerator<'a> {
scope: scope.clone(),
name: constr_var.clone(),
});
let mut subject_scope = scope.clone();
subject_scope.push(self.id_gen.next());
self.build_ir(&subject, ir_stack, scope.clone());
self.build_ir(&subject, ir_stack, subject_scope.clone());
let mut scope = scope;
scope.push(self.id_gen.next());
ir_stack.push(Air::When {
scope: scope.clone(),
@@ -436,9 +441,6 @@ impl<'a> CodeGenerator<'a> {
tipo: subject_tipo.clone(),
});
let mut scope = scope;
scope.push(self.id_gen.next());
ir_stack.push(Air::Var {
scope,
constructor: ValueConstructor::public(