Better error message for compile time evaluation

This commit is contained in:
microproofs 2024-05-06 11:58:32 -04:00
parent 68f1dcc65d
commit b2661ef90a
1 changed files with 21 additions and 9 deletions

View File

@ -4206,8 +4206,11 @@ impl<'a> CodeGenerator<'a> {
let eval_program: Program<NamedDeBruijn> =
program.remove_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> =
eval_program.eval(ExBudget::default()).result().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())
.result()
.expect("Evaluated a constant record and got an error");
term = evaluated_term.try_into().unwrap();
} else {
for (index, arg) in constr_type.arguments.iter().enumerate().rev() {
@ -4463,7 +4466,7 @@ impl<'a> CodeGenerator<'a> {
let result = eval_program.eval(ExBudget::max()).result();
let evaluated_term: Term<NamedDeBruijn> = result.unwrap_or_else(|e| {
panic!("failed evaluation in interner: {e:#?}")
panic!("Evaluated a zero argument function and received this error: {e:#?}")
});
Some(evaluated_term.try_into().unwrap())
@ -4788,8 +4791,11 @@ impl<'a> CodeGenerator<'a> {
let eval_program: Program<NamedDeBruijn> =
program.remove_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> =
eval_program.eval(ExBudget::default()).result().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())
.result()
.expect("Evaluated on unwrapping a data constant and got an error");
term = evaluated_term.try_into().unwrap();
}
@ -4813,8 +4819,11 @@ impl<'a> CodeGenerator<'a> {
let eval_program: Program<NamedDeBruijn> =
program.remove_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> =
eval_program.eval(ExBudget::default()).result().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())
.result()
.expect("Evaluated on wrapping a constant into data and got an error");
term = evaluated_term.try_into().unwrap();
} else {
term = builder::convert_type_to_data(term, &tipo);
@ -5262,8 +5271,11 @@ impl<'a> CodeGenerator<'a> {
let eval_program: Program<NamedDeBruijn> =
program.remove_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> =
eval_program.eval(ExBudget::default()).result().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())
.result()
.expect("Evaluated a constant record with args and got an error");
term = evaluated_term.try_into().unwrap();
}