From b7fa57027a8291c2c8745fd00341ab5cab303f67 Mon Sep 17 00:00:00 2001 From: Kasey White Date: Tue, 14 Feb 2023 12:28:16 -0500 Subject: [PATCH] scope is now properly handled in expect cases --- crates/aiken-lang/src/uplc.rs | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/crates/aiken-lang/src/uplc.rs b/crates/aiken-lang/src/uplc.rs index 3d475899..61a1faf2 100644 --- a/crates/aiken-lang/src/uplc.rs +++ b/crates/aiken-lang/src/uplc.rs @@ -714,21 +714,28 @@ impl<'a> CodeGenerator<'a> { *clause_properties.is_complex_clause() = true; let clause_guard_name = format!("__clause_guard_{}", self.id_gen.next()); + let mut clause_guard_scope = scope.clone(); + clause_guard_scope.push(self.id_gen.next()); + clause_guard_vec.push(Air::Let { - scope: scope.clone(), + scope: clause_guard_scope.clone(), name: clause_guard_name.clone(), }); - handle_clause_guard(clause_guard, &mut clause_guard_vec, scope.clone()); + handle_clause_guard( + clause_guard, + &mut clause_guard_vec, + clause_guard_scope.clone(), + ); clause_guard_vec.push(Air::ClauseGuard { - scope: scope.clone(), + scope: clause_guard_scope.clone(), subject_name: clause_guard_name, tipo: bool(), }); clause_guard_vec.push(Air::Bool { - scope: scope.clone(), + scope: clause_guard_scope.clone(), value: true, }); @@ -1875,6 +1882,9 @@ impl<'a> CodeGenerator<'a> { pattern_vec.append(values); + let mut scope = scope; + scope.push(self.id_gen.next()); + pattern_vec.push(Air::AssertConstr { scope: scope.clone(), constr_index: index, @@ -2125,6 +2135,9 @@ impl<'a> CodeGenerator<'a> { pattern_vec.append(value_vec); + let mut scope = scope; + scope.push(self.id_gen.next()); + pattern_vec.push(Air::AssertConstr { scope: scope.clone(), constr_index: index,