summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/optimize.tl14
1 files changed, 6 insertions, 8 deletions
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)