diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2023-03-22 18:54:54 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2023-03-22 18:54:54 -0700 |
commit | c438b72ccc3dcb7a86153de22a92119de4e236df (patch) | |
tree | e5e457d4b6d152149c68f885df3cb2dce48abe83 | |
parent | 28d34640e615912960aea678af060f3e444c2cc8 (diff) | |
download | txr-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.tl | 18 |
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 |