From 3bec8464a938555034ea6be43f5447a5e7409bb8 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 17 May 2025 23:42:30 -0700 Subject: compiler: fix unidiomatic if/cond combination. * stdlib/compiler.tl (expand-quasi-mods): Fix unidiomatic if form which continues with a cond fallback. All I'm doing here is flattening (if a b (cond (c d) ...)) to (cond (a b) (c d) ...). --- stdlib/compiler.tl | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl index 349fd9ab..bf365ff3 100644 --- a/stdlib/compiler.tl +++ b/stdlib/compiler.tl @@ -1944,19 +1944,18 @@ (when (> mcount 3) (compile-error form "too many formatting modifiers")) ^(alet ,(nreverse gens) - ,(if flex - ^(sys:fmt-flex ,obj ',plist - ,*(remq nil (list* num sep - (if scalar-ix-p - ^(rcons ,rng-ix nil) - rng-ix) - (nreverse flex)))) - (cond - (plist ^(sys:fmt-simple ,obj ,num ,sep, rng-ix ',plist)) - (rng-ix ^(sys:fmt-simple ,obj ,num ,sep, rng-ix)) - (sep ^(sys:fmt-simple ,obj ,num ,sep)) - (num ^(sys:fmt-simple ,obj ,num)) - (t ^(sys:fmt-simple ,obj ,num))))))))) + ,(cond + (flex ^(sys:fmt-flex ,obj ',plist + ,*(remq nil (list* num sep + (if scalar-ix-p + ^(rcons ,rng-ix nil) + rng-ix) + (nreverse flex))))) + (plist ^(sys:fmt-simple ,obj ,num ,sep, rng-ix ',plist)) + (rng-ix ^(sys:fmt-simple ,obj ,num ,sep, rng-ix)) + (sep ^(sys:fmt-simple ,obj ,num ,sep)) + (num ^(sys:fmt-simple ,obj ,num)) + (t ^(sys:fmt-simple ,obj ,num)))))))) (defun expand-quasi-args (form) (append-each ((el (cdr form))) -- cgit v1.2.3