diff --git a/crates/aiken-project/src/tests/gen_uplc.rs b/crates/aiken-project/src/tests/gen_uplc.rs index 3a87a4ce..f51e5a9e 100644 --- a/crates/aiken-project/src/tests/gen_uplc.rs +++ b/crates/aiken-project/src/tests/gen_uplc.rs @@ -2786,12 +2786,9 @@ fn when_tuple_deconstruction() { Term::equals_integer() .apply( Term::un_i_data().apply( - Term::head_list() - .apply(Term::var("__fields")) - .lambda("__fields") - .apply( - Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("a")), - ), + Term::head_list().apply( + Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("a")), + ), ), ) .apply(Term::var("x")) @@ -3773,15 +3770,9 @@ fn foldl_type_mismatch() { .apply(Term::var("mb_b_index")) .delayed_if_else( Term::equals_data() - .apply( - Term::head_list() - .apply(Term::var("__fields")) - .lambda("__fields") - .apply( - Term::var(CONSTR_FIELDS_EXPOSER) - .apply(Term::var("o")), - ), - ) + .apply(Term::head_list().apply( + Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("o")), + )) .apply(Term::var("addr1")) .delayed_if_else( Term::constr_data().apply(Term::integer(0.into())).apply( @@ -5141,14 +5132,9 @@ fn opaque_value_in_test() { .lambda("tuple_item_0") .apply(Term::head_list().apply(Term::var("val"))) .lambda("val") - .apply( - Term::unmap_data().apply( - Term::head_list() - .apply(Term::tail_list().apply(Term::var("__fields"))) - .lambda("__fields") - .apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))), - ), - ) + .apply(Term::unmap_data().apply(Term::head_list().apply( + Term::tail_list().apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))), + ))) .lambda("dat") .apply(Term::Constant( Constant::Data(Data::constr( diff --git a/crates/uplc/src/optimize/shrinker.rs b/crates/uplc/src/optimize/shrinker.rs index efe0b6b0..2cb7a161 100644 --- a/crates/uplc/src/optimize/shrinker.rs +++ b/crates/uplc/src/optimize/shrinker.rs @@ -129,6 +129,8 @@ fn builtin_force_reduce(term: &mut Term, builtin_map: &mut IndexMap todo!(), + Term::Constr { .. } => todo!(), _ => {} } } @@ -160,6 +162,8 @@ fn force_delay_reduce(term: &mut Term) { let arg = Rc::make_mut(argument); force_delay_reduce(arg); } + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), _ => {} } } @@ -201,6 +205,8 @@ fn inline_direct_reduce(term: &mut Term) { let f = Rc::make_mut(f); inline_direct_reduce(f); } + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), _ => {} } } @@ -256,6 +262,8 @@ fn inline_identity_reduce(term: &mut Term) { let f = Rc::make_mut(f); inline_identity_reduce(f); } + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), _ => {} } } @@ -314,6 +322,8 @@ fn inline_basic_reduce(term: &mut Term) { let f = Rc::make_mut(f); inline_basic_reduce(f); } + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), _ => {} } } @@ -435,6 +445,8 @@ fn wrap_data_reduce(term: &mut Term) { Term::Force(f) => { wrap_data_reduce(Rc::make_mut(f)); } + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), _ => {} } } @@ -464,6 +476,8 @@ fn var_occurrences(term: &Term, search_for: Rc) -> usize { + var_occurrences(argument.as_ref(), search_for) } Term::Force(x) => var_occurrences(x.as_ref(), search_for), + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), _ => 0, } } @@ -476,6 +490,15 @@ fn delayed_execution(term: &Term) -> usize { delayed_execution(function.as_ref()) + delayed_execution(argument.as_ref()) } Term::Force(x) => delayed_execution(x.as_ref()), + Term::Case { constr, branches } => { + 1 + delayed_execution(constr.as_ref()) + + branches + .iter() + .fold(0, |acc, branch| acc + delayed_execution(branch)) + } + Term::Constr { fields, .. } => fields + .iter() + .fold(0, |acc, field| acc + delayed_execution(field)), _ => 0, } } @@ -512,6 +535,8 @@ fn lambda_reduce(term: &mut Term) { let f = Rc::make_mut(f); lambda_reduce(f); } + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), _ => {} } } @@ -553,6 +578,8 @@ fn substitute_term(term: &Term, original: Rc, replace_with: &Term Term::Force(Rc::new(substitute_term(x.as_ref(), original, replace_with))), + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), x => x.clone(), } } @@ -600,6 +627,8 @@ fn replace_identity_usage(term: &Term, original: Rc) -> Term { } } Term::Force(x) => Term::Force(Rc::new(replace_identity_usage(x.as_ref(), original))), + Term::Case { .. } => todo!(), + Term::Constr { .. } => todo!(), x => x.clone(), } }