[movitz-cvs] CVS movitz/losp/muerte

ffjeld ffjeld at common-lisp.net
Sat May 6 20:29:11 UTC 2006


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv13407

Modified Files:
	typep.lisp 
Log Message:
Tweak etypecase-error.


--- /project/movitz/cvsroot/movitz/losp/muerte/typep.lisp	2006/04/10 11:58:15	1.53
+++ /project/movitz/cvsroot/movitz/losp/muerte/typep.lisp	2006/05/06 20:29:10	1.54
@@ -9,7 +9,7 @@
 ;;;; Created at:    Fri Dec  8 11:07:53 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: typep.lisp,v 1.53 2006/04/10 11:58:15 ffjeld Exp $
+;;;; $Id: typep.lisp,v 1.54 2006/05/06 20:29:10 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -38,11 +38,10 @@
 		     else collect `((typep ,key-var ',type) , at forms)))))))
 
 (defmacro etypecase (keyform &rest clauses)
-  `(typecase ,keyform , at clauses
-	     (t (error "~S fell through an etypecase where the legal types were ~S."
-		       ,keyform
-		       ',(loop for c in clauses
-			     collect (car c))))))
+  (let ((key-var (make-symbol "etypecase-key-var-")))
+    `(let ((,key-var ,keyform))
+       (typecase ,key-var , at clauses
+		 (t (etypecase-error ,key-var ',(loop for c in clauses collect (car c))))))))
 
 (define-compile-time-variable *simple-typespecs*
     ;; map symbol typespecs to typep-functions.




More information about the Movitz-cvs mailing list