aboutsummaryrefslogtreecommitdiff
path: root/src/interp/macros.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/macros.lisp')
-rw-r--r--src/interp/macros.lisp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/interp/macros.lisp b/src/interp/macros.lisp
index 8c73a892..217cf844 100644
--- a/src/interp/macros.lisp
+++ b/src/interp/macros.lisp
@@ -509,10 +509,15 @@ terminals and empty or at-end files. In Common Lisp, we must assume record size
(STRINGIMAGE (|devaluate| mode))))
(defmacro |check-subtype| (pred submode val)
- `(|assert| ,pred (coerce-failure-msg ,val ,submode)))
-
+ `(progn
+ (|assert| ,pred (coerce-failure-msg ,val ,submode))
+ ,val))
+
(defmacro |check-union| (pred branch val)
- `(|assert| ,pred (coerce-failure-msg ,val ,branch )))
+ `(progn
+ (|assert| ,pred (coerce-failure-msg ,val ,branch))
+ ,val))
+
(defun MAKE-REASONABLE (Z)
(if (> (length Z) 30) (CONCAT "expression beginning " (subseq Z 0 20)) Z))