diff --git a/crates/aiken-lang/src/gen_uplc.rs b/crates/aiken-lang/src/gen_uplc.rs index 73436721..0426a6ad 100644 --- a/crates/aiken-lang/src/gen_uplc.rs +++ b/crates/aiken-lang/src/gen_uplc.rs @@ -2707,6 +2707,7 @@ impl<'a> CodeGenerator<'a> { variant, func_params.clone(), is_recursive, + vec![], body, ); @@ -2841,6 +2842,7 @@ impl<'a> CodeGenerator<'a> { &dep_variant, dependent_params, is_dependent_recursive, + vec![], dep_air_tree, )); @@ -3704,6 +3706,7 @@ impl<'a> CodeGenerator<'a> { func_name, params, recursive, + recursive_static_params, module_name, variant_name, } => { @@ -3733,6 +3736,8 @@ impl<'a> CodeGenerator<'a> { .lambda(func_name) .apply(func_body); + // TODO: use recursive_static_params here + arg_stack.push(term); } } diff --git a/crates/aiken-lang/src/gen_uplc/air.rs b/crates/aiken-lang/src/gen_uplc/air.rs index c99541bb..b2d388a8 100644 --- a/crates/aiken-lang/src/gen_uplc/air.rs +++ b/crates/aiken-lang/src/gen_uplc/air.rs @@ -47,6 +47,7 @@ pub enum Air { module_name: String, params: Vec, recursive: bool, + recursive_static_params: Vec, variant_name: String, }, Fn { diff --git a/crates/aiken-lang/src/gen_uplc/tree.rs b/crates/aiken-lang/src/gen_uplc/tree.rs index e02a25fd..0b4fcb44 100644 --- a/crates/aiken-lang/src/gen_uplc/tree.rs +++ b/crates/aiken-lang/src/gen_uplc/tree.rs @@ -129,6 +129,7 @@ pub enum AirStatement { module_name: String, params: Vec, recursive: bool, + recursive_static_params: Vec, variant_name: String, func_body: Box, }, @@ -423,6 +424,7 @@ impl AirTree { variant_name: impl ToString, params: Vec, recursive: bool, + recursive_static_params: Vec, func_body: AirTree, ) -> AirTree { AirTree::Statement { @@ -431,6 +433,7 @@ impl AirTree { module_name: module_name.to_string(), params, recursive, + recursive_static_params, variant_name: variant_name.to_string(), func_body: func_body.into(), }, @@ -875,6 +878,7 @@ impl AirTree { module_name, params, recursive, + recursive_static_params, variant_name, func_body, } => { @@ -883,6 +887,7 @@ impl AirTree { module_name: module_name.clone(), params: params.clone(), recursive: *recursive, + recursive_static_params: recursive_static_params.clone(), variant_name: variant_name.clone(), }); func_body.create_air_vec(air_vec);