diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/except.tl | 3 | ||||
-rw-r--r-- | share/txr/stdlib/place.tl | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/share/txr/stdlib/except.tl b/share/txr/stdlib/except.tl index ad5cb0b9..addc3a66 100644 --- a/share/txr/stdlib/except.tl +++ b/share/txr/stdlib/except.tl @@ -44,3 +44,6 @@ syms-fragments))) ,[mapcar car syms-fragments] ,try-form))) + +(defmacro ignwarn (. forms) + ^(handler-bind (lambda (exc-sym arg) (throw 'continue)) (warning) ,*forms)) diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl index 20650ad0..b18fddbf 100644 --- a/share/txr/stdlib/place.tl +++ b/share/txr/stdlib/place.tl @@ -183,7 +183,7 @@ (expander (get-update-expander place)) (sys:*pl-env* env) (expansion [expander getter setter place body]) - (expansion-ex (sys:expand expansion env))) + (expansion-ex (ignwarn (sys:expand expansion env)))) (sys:cp-origin expansion-ex place))) (defun call-clobber-expander (ssetter unex-place env body) @@ -191,7 +191,7 @@ (expander (get-clobber-expander place)) (sys:*pl-env* env) (expansion [expander ssetter place body]) - (expansion-ex (sys:expand expansion env))) + (expansion-ex (ignwarn (sys:expand expansion env)))) (sys:cp-origin expansion-ex place))) (defun call-delete-expander (deleter unex-place env body) @@ -199,7 +199,7 @@ (expander (get-delete-expander place)) (sys:*pl-env* env) (expansion [expander deleter place body]) - (expansion-ex (sys:expand expansion env))) + (expansion-ex (ignwarn (sys:expand expansion env)))) (sys:cp-origin expansion-ex place)))) (defmacro with-update-expander ((getter setter) unex-place env body) |