diff --git a/crates/aiken-lang/src/gen_uplc.rs b/crates/aiken-lang/src/gen_uplc.rs index 615f5da6..35a521ee 100644 --- a/crates/aiken-lang/src/gen_uplc.rs +++ b/crates/aiken-lang/src/gen_uplc.rs @@ -2506,7 +2506,7 @@ impl<'a> CodeGenerator<'a> { }; for (_index, name, tipo) in arg_indices.clone() { - let mut call_stack = expect_stack.empty_with_scope(); + let mut call_stack = arg_stack.empty_with_scope(); self.expect_type(&tipo, &mut call_stack, &name, defined_data_types); @@ -3240,10 +3240,20 @@ impl<'a> CodeGenerator<'a> { variant_name: "".to_string(), }; + let function_stack = AirStack { + id_gen: self.id_gen.clone(), + scope: scope.clone(), + air: func_ir, + }; + + let mut new_stack = AirStack::with_scope(self.id_gen.clone(), scope.clone()); + + new_stack.merge_child(function_stack); + func_components.insert( function_key.clone(), FuncComponents { - ir: func_ir, + ir: new_stack.complete(), dependencies: dependencies .into_iter() .map(|item| FunctionAccessKey { diff --git a/crates/aiken-project/src/tests/gen_uplc.rs b/crates/aiken-project/src/tests/gen_uplc.rs index ff9f6858..fdb1da74 100644 --- a/crates/aiken-project/src/tests/gen_uplc.rs +++ b/crates/aiken-project/src/tests/gen_uplc.rs @@ -71,7 +71,6 @@ fn assert_uplc(source_code: &str, expected: Term, should_fail: bool) { }; let expected = optimize::aiken_optimize_and_intern(expected); - println!("EXP {}", expected.to_pretty()); let expected: Program = expected.try_into().unwrap(); @@ -102,8 +101,6 @@ fn assert_uplc(source_code: &str, expected: Term, should_fail: bool) { let expected = optimize::aiken_optimize_and_intern(expected); - println!("EXP {}", expected.to_pretty()); - let expected: Program = expected.try_into().unwrap(); assert_eq!(debruijn_program.to_pretty(), expected.to_pretty());