From 3a44c45b486fd25564e41855f6bb179c93721c8d Mon Sep 17 00:00:00 2001 From: microproofs Date: Mon, 22 Jan 2024 17:54:03 -0500 Subject: [PATCH] fix: one builtin error wasn't be caught with a messaged exception --- crates/aiken-lang/src/gen_uplc/builder.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/aiken-lang/src/gen_uplc/builder.rs b/crates/aiken-lang/src/gen_uplc/builder.rs index 12e902ae..3c6a3fac 100644 --- a/crates/aiken-lang/src/gen_uplc/builder.rs +++ b/crates/aiken-lang/src/gen_uplc/builder.rs @@ -1587,13 +1587,24 @@ pub fn list_access_to_uplc( if matches!(expect_level, ExpectLevel::None) { acc.lambda(name).apply(head_list).lambda(tail_name) - } else { + } else if error_term == Term::Error { Term::tail_list() .apply(Term::var(tail_name.to_string())) .delayed_choose_list(acc, error_term.clone()) .lambda(name) .apply(head_list) .lambda(tail_name) + } else { + Term::var(tail_name.to_string()) + .delayed_choose_list( + error_term.clone(), + Term::tail_list() + .apply(Term::var(tail_name.to_string())) + .delayed_choose_list(acc, error_term.clone()) + .lambda(name) + .apply(head_list), + ) + .lambda(tail_name) } } else if name == "_" { if matches!(expect_level, ExpectLevel::None) || error_term == Term::Error {