diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/place.tl | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl index 67a593fb..e19caa2f 100644 --- a/share/txr/stdlib/place.tl +++ b/share/txr/stdlib/place.tl @@ -310,9 +310,12 @@ ,delete-body))))))))) (defmacro define-place-macro (name place-destructuring-args . body) - (with-gensyms (name-dummy) + (with-gensyms (name-dummy args) ^(sethash *place-macro* ',name - (tb ((,name-dummy ,*place-destructuring-args)) ,*body)))) + (lambda (,args) + (mac-param-bind ,args + (,name-dummy ,*place-destructuring-args) + ,args ,*body))))) (defplace (sys:var arg) body (getter setter |