From 878298cc8e38369dad2e58d4dddedce7fd6ee006 Mon Sep 17 00:00:00 2001 From: microproofs Date: Sun, 5 May 2024 23:45:13 -0400 Subject: [PATCH] don't use generic data type lookup when you have a Record Variant as a function --- crates/aiken-lang/src/gen_uplc.rs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/crates/aiken-lang/src/gen_uplc.rs b/crates/aiken-lang/src/gen_uplc.rs index 17ce837b..5ce4b72b 100644 --- a/crates/aiken-lang/src/gen_uplc.rs +++ b/crates/aiken-lang/src/gen_uplc.rs @@ -4213,15 +4213,18 @@ impl<'a> CodeGenerator<'a> { term = evaluated_term.try_into().unwrap(); } else { - for (index, arg) in constr_type.arguments.iter().enumerate().rev() { + for (index, arg) in constructor + .tipo + .arg_types() + .unwrap() + .iter() + .enumerate() + .rev() + { term = Term::mk_cons() .apply(convert_type_to_data( - Term::var( - arg.label - .clone() - .unwrap_or_else(|| format!("arg_{index}")), - ), - &arg.tipo, + Term::var(format!("arg_{index}")), + arg, )) .apply(term); } @@ -4230,10 +4233,8 @@ impl<'a> CodeGenerator<'a> { .apply(Term::integer(constr_index.into())) .apply(term); - for (index, arg) in constr_type.arguments.iter().enumerate().rev() { - term = term.lambda( - arg.label.clone().unwrap_or_else(|| format!("arg_{index}")), - ) + for (index, _) in constr_type.arguments.iter().enumerate().rev() { + term = term.lambda(format!("arg_{index}")) } } Some(term)