summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/except.tl3
-rw-r--r--share/txr/stdlib/place.tl6
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)