summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2023-03-22 18:54:54 -0700
committerKaz Kylheku <kaz@kylheku.com>2023-03-22 18:54:54 -0700
commitc438b72ccc3dcb7a86153de22a92119de4e236df (patch)
treee5e457d4b6d152149c68f885df3cb2dce48abe83
parent28d34640e615912960aea678af060f3e444c2cc8 (diff)
downloadtxr-c438b72ccc3dcb7a86153de22a92119de4e236df.tar.gz
txr-c438b72ccc3dcb7a86153de22a92119de4e236df.tar.bz2
txr-c438b72ccc3dcb7a86153de22a92119de4e236df.zip
compiler: dohash: source location propagation
* stdlib/compiler.tl (expand-dohash): Add missing rlcp.
-rw-r--r--stdlib/compiler.tl18
1 files changed, 10 insertions, 8 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl
index 3b0e34e1..b27a0a82 100644
--- a/stdlib/compiler.tl
+++ b/stdlib/compiler.tl
@@ -1906,14 +1906,16 @@
(defun expand-dohash (form)
(mac-param-bind form (t (key-var val-var hash-form : res-form) . body) form
(with-gensyms (iter-var cell-var)
- ^(let (,key-var ,val-var (,iter-var (hash-begin ,hash-form)) ,cell-var)
- (block nil
- (sys:for-op ((sys:setq ,cell-var (hash-next ,iter-var)))
- (,cell-var ,res-form)
- ((sys:setq ,cell-var (hash-next ,iter-var)))
- (sys:setq ,key-var (car ,cell-var))
- (sys:setq ,val-var (cdr ,cell-var))
- ,*body))))))
+ (rlcp
+ ^(let (,key-var ,val-var (,iter-var (hash-begin ,hash-form)) ,cell-var)
+ (block nil
+ (sys:for-op ((sys:setq ,cell-var (hash-next ,iter-var)))
+ (,cell-var ,res-form)
+ ((sys:setq ,cell-var (hash-next ,iter-var)))
+ (sys:setq ,key-var (car ,cell-var))
+ (sys:setq ,val-var (cdr ,cell-var))
+ ,*body)))
+ form))))
(defun expand-each (form env)
(mac-param-bind form (t each-type vars . body) form