diff --git a/crates/aiken-lang/src/gen_uplc.rs b/crates/aiken-lang/src/gen_uplc.rs index 1bd51d04..4c45ff81 100644 --- a/crates/aiken-lang/src/gen_uplc.rs +++ b/crates/aiken-lang/src/gen_uplc.rs @@ -3915,7 +3915,13 @@ impl<'a> CodeGenerator<'a> { &self.data_types, &constructor.tipo, ) - .unwrap(); + .unwrap_or_else(|| { + panic!( + "could not find data-type definition for {} within known set: {:?}", + constructor.tipo.to_pretty(0), + self.data_types.keys() + ) + }); let (constr_index, constr_type) = data_type .constructors @@ -4197,8 +4203,11 @@ impl<'a> CodeGenerator<'a> { let eval_program: Program = program.remove_no_inlines().try_into().unwrap(); - let evaluated_term: Term = - eval_program.eval(ExBudget::max()).result().unwrap(); + let result = eval_program.eval(ExBudget::max()).result(); + + let evaluated_term: Term = result.unwrap_or_else(|e| { + panic!("failed evaluation in interner: {e:#?}") + }); Some(evaluated_term.try_into().unwrap()) } else { diff --git a/crates/aiken-lang/src/tipo.rs b/crates/aiken-lang/src/tipo.rs index 38a34fc9..0d463058 100644 --- a/crates/aiken-lang/src/tipo.rs +++ b/crates/aiken-lang/src/tipo.rs @@ -120,8 +120,8 @@ impl PartialEq for Type { Type::Tuple { elems, alias: _ } => { if let Type::Tuple { elems: elems2, .. } = other { - elems.len() == elems2.len() && - elems.iter().zip(elems2).all(|(left, right)| left == right) + elems.len() == elems2.len() + && elems.iter().zip(elems2).all(|(left, right)| left == right) } else { false }