summaryrefslogtreecommitdiff
path: root/control-flow.lisp
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-07-31 19:56:23 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-07-31 19:56:23 +0200
commit01b311eaf70c95d68a0cbaa4117863f1771a9f3b (patch)
treec17ad17741780e79addc7c347bbee402f9d04cc8 /control-flow.lisp
parent783810557ff05c3d52aedc03628df7b0d862948b (diff)
GO, RETURN-FROM: Use EQ instead of EQL when looking for a tag name.
Diffstat (limited to 'control-flow.lisp')
-rw-r--r--control-flow.lisp11
1 files changed, 7 insertions, 4 deletions
diff --git a/control-flow.lisp b/control-flow.lisp
index d9998e2..cb4f329 100644
--- a/control-flow.lisp
+++ b/control-flow.lisp
@@ -19,7 +19,7 @@
(in-package #:common-lisp)
(export '(identity constantly complement tagbody go block return-from
- defconstant prog prog* macrolet flet))
+ defconstant prog prog* macrolet flet prog1 prog2))
(defun identity (x)
@@ -68,7 +68,8 @@
(defmacro return-from (block-name &optional value &environment env)
`(throw ',(cdr (assoc block-name (cadr (macroexpand `(,+block-mapping-sym+)
- env))))
+ env))
+ :test 'eq))
,value))
@@ -82,9 +83,11 @@
(defmacro go (tag &environment env)
`(throw ',(cdr (assoc tag (cadr (macroexpand `(,+go-tag-catch-tag-mapping-sym+)
- env))))
+ env))
+ :test 'eq))
(function ,(cdr (assoc tag (cadr (macroexpand `(,+go-tag-function-mapping-sym+)
- env)))))))
+ env))
+ :test 'eq)))))
(defmacro tagbody (&body body)
(let* (labels-and-catch-tags