From 4e32c77f590b5191d488da142d3009522f0127ba Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 10 Feb 2021 23:35:36 -0800 Subject: compiler: use rewrite-case in dedup-labels. * share/txr/stdlib/optimize.tl (dedup-labels): Use rewrite-case macro defined in the same file instead of rewrite/lambda/match-case. Also change two-argument list* to cons. --- share/txr/stdlib/optimize.tl | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'share') diff --git a/share/txr/stdlib/optimize.tl b/share/txr/stdlib/optimize.tl index 0875231c..9acbbe5d 100644 --- a/share/txr/stdlib/optimize.tl +++ b/share/txr/stdlib/optimize.tl @@ -165,12 +165,10 @@ list)) (defun dedup-labels (insns) - (rewrite (lambda (tail) - (match-case tail - ((@(symbolp @label0) @(symbolp @label1) . @rest) - (set insns (mapcar [iffi listp (op subst label1 label0)] - (remq label1 insns))) - (list* label0 rest)) - (@else tail))) - insns) + (rewrite-case tail insns + ((@(symbolp @label0) @(symbolp @label1) . @rest) + (set insns (mapcar [iffi listp (op subst label1 label0)] + (remq label1 insns))) + (cons label0 rest)) + (@else tail)) insns) -- cgit v1.2.3