diff options
author | Matthias Andreas Benkard <matthias@benkard.de> | 2008-07-31 19:56:23 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <matthias@benkard.de> | 2008-07-31 19:56:23 +0200 |
commit | 01b311eaf70c95d68a0cbaa4117863f1771a9f3b (patch) | |
tree | c17ad17741780e79addc7c347bbee402f9d04cc8 /control-flow.lisp | |
parent | 783810557ff05c3d52aedc03628df7b0d862948b (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.lisp | 11 |
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 |