From 0975bff6ddcf48de4072561adea67a5c1cd4456f Mon Sep 17 00:00:00 2001 From: Joel Kronqvist Date: Thu, 14 Aug 2025 12:17:41 +0300 Subject: fix: step scrutinee of case & can instantiate empty vec --- src/sexp/util.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/sexp/util.rs') diff --git a/src/sexp/util.rs b/src/sexp/util.rs index 3de45d4..aa7ae18 100644 --- a/src/sexp/util.rs +++ b/src/sexp/util.rs @@ -94,4 +94,12 @@ impl SExp { _ => None, } } + + pub fn back_to_case(scrutinee: SExp, arms: Vec) -> SExp { + let mut res = Atom(Nil); + for arm in arms.into_iter().rev() { + res = scons(arm, res); + } + scons(Case, scons(scrutinee, res)) + } } -- cgit v1.2.3