diff --git a/crates/aiken-lang/src/gen_uplc.rs b/crates/aiken-lang/src/gen_uplc.rs index 678402e4..42a39bf7 100644 --- a/crates/aiken-lang/src/gen_uplc.rs +++ b/crates/aiken-lang/src/gen_uplc.rs @@ -42,8 +42,8 @@ use self::{ builder::{ cast_validator_args, constants_ir, convert_type_to_data, extract_constant, lookup_data_type_by_tipo, modify_cyclic_calls, modify_self_calls, rearrange_list_clauses, - AssignmentProperties, ClauseProperties, DataTypeKey, FunctionAccessKey, HoistableFunction, - Variant, + AssignmentProperties, ClauseProperties, CycleFunctionNames, DataTypeKey, FunctionAccessKey, + HoistableFunction, Variant, }, tree::{AirExpression, AirTree, TreePath}, }; @@ -58,7 +58,7 @@ pub struct CodeGenerator<'a> { code_gen_functions: IndexMap, zero_arg_functions: IndexMap<(FunctionAccessKey, Variant), Vec>, cyclic_functions: - IndexMap<(FunctionAccessKey, Variant), (Vec, usize, FunctionAccessKey)>, + IndexMap<(FunctionAccessKey, Variant), (CycleFunctionNames, usize, FunctionAccessKey)>, tracing: bool, id_gen: IdGenerator, } diff --git a/crates/aiken-lang/src/gen_uplc/builder.rs b/crates/aiken-lang/src/gen_uplc/builder.rs index ef2b6804..124412c0 100644 --- a/crates/aiken-lang/src/gen_uplc/builder.rs +++ b/crates/aiken-lang/src/gen_uplc/builder.rs @@ -34,6 +34,8 @@ pub type Variant = String; pub type Params = Vec; +pub type CycleFunctionNames = Vec; + #[derive(Clone, Debug)] pub enum CodeGenFunction { Function { body: AirTree, params: Params }, @@ -754,7 +756,10 @@ pub fn modify_self_calls( pub fn modify_cyclic_calls( body: &mut AirTree, func_key: &FunctionAccessKey, - cyclic_links: &IndexMap<(FunctionAccessKey, Variant), (Vec, usize, FunctionAccessKey)>, + cyclic_links: &IndexMap< + (FunctionAccessKey, Variant), + (CycleFunctionNames, usize, FunctionAccessKey), + >, ) { body.traverse_tree_with( &mut |air_tree: &mut AirTree, _| {