diff --git a/crates/uplc/src/optimize/shrinker.rs b/crates/uplc/src/optimize/shrinker.rs index 751a35c6..f9e8e0ed 100644 --- a/crates/uplc/src/optimize/shrinker.rs +++ b/crates/uplc/src/optimize/shrinker.rs @@ -183,9 +183,14 @@ fn lambda_reducer(term: &mut Term) { body, } = func { - if let replace_term @ (Term::Var(_) | Term::Constant(_) | Term::Builtin(_)) = arg { + if let Term::Constant(c) = arg { + if !matches!(c.as_ref(), Constant::String(_)) { + let body = Rc::make_mut(body); + *term = substitute_term(body, parameter_name.clone(), arg); + } + } else if let Term::Var(_) | Term::Builtin(_) = arg { let body = Rc::make_mut(body); - *term = substitute_term(body, parameter_name.clone(), replace_term); + *term = substitute_term(body, parameter_name.clone(), arg); } } }