feat: generate_test doesn't need arguments

This commit is contained in:
rvcas 2023-03-17 18:37:05 -04:00
parent 74c61358ab
commit 2dbc50f098
No known key found for this signature in database
GPG Key ID: C09B64E263F7D68C
2 changed files with 11 additions and 25 deletions

View File

@ -20,8 +20,8 @@ use uplc::{
use crate::{ use crate::{
air::Air, air::Air,
ast::{ ast::{
ArgName, AssignmentKind, BinOp, Pattern, Span, TypedArg, TypedClause, TypedDataType, ArgName, AssignmentKind, BinOp, Pattern, Span, TypedClause, TypedDataType, TypedFunction,
TypedFunction, TypedValidator, UnOp, TypedValidator, UnOp,
}, },
builder::{ builder::{
check_replaceable_opaque_type, check_when_pattern_needs, constants_ir, check_replaceable_opaque_type, check_when_pattern_needs, constants_ir,
@ -145,11 +145,7 @@ impl<'a> CodeGenerator<'a> {
self.finalize(term, true) self.finalize(term, true)
} }
pub fn generate_test( pub fn generate_test(&mut self, test_body: &TypedExpr) -> Program<Name> {
&mut self,
test_body: &TypedExpr,
arguments: &[TypedArg],
) -> Program<Name> {
let mut ir_stack = vec![]; let mut ir_stack = vec![];
let scope = vec![self.id_gen.next()]; let scope = vec![self.id_gen.next()];
@ -167,8 +163,6 @@ impl<'a> CodeGenerator<'a> {
term = builder::constr_fields_exposer(term); term = builder::constr_fields_exposer(term);
} }
term = wrap_validator_args(term, arguments);
self.finalize(term, false) self.finalize(term, false)
} }

View File

@ -675,12 +675,7 @@ where
let mut programs = Vec::new(); let mut programs = Vec::new();
for (input_path, module_name, func_def) in scripts { for (input_path, module_name, func_def) in scripts {
let Function { let Function { name, body, .. } = func_def;
arguments,
name,
body,
..
} = func_def;
if verbose { if verbose {
self.event_listener.handle_event(Event::GeneratingUPLCFor { self.event_listener.handle_event(Event::GeneratingUPLCFor {
@ -695,30 +690,27 @@ where
&self.module_types, &self.module_types,
); );
let evaluation_hint = if let Some((bin_op, left_src, right_src)) = func_def.test_hint() let evaluation_hint = func_def.test_hint().map(|(bin_op, left_src, right_src)| {
{
let left = generator let left = generator
.clone() .clone()
.generate_test(&left_src, &[]) .generate_test(&left_src)
.try_into() .try_into()
.unwrap(); .unwrap();
let right = generator let right = generator
.clone() .clone()
.generate_test(&right_src, &[]) .generate_test(&right_src)
.try_into() .try_into()
.unwrap(); .unwrap();
Some(EvalHint { EvalHint {
bin_op, bin_op,
left, left,
right, right,
}) }
} else { });
None
};
let program = generator.generate_test(body, arguments); let program = generator.generate_test(body);
let script = Script::new( let script = Script::new(
input_path, input_path,