X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Feval.lisp;h=4c350e4be3b44de59ef77949bc3bc6605f518bba;hb=51cf665f514935c8067f86f3850fd917731cada0;hp=b81bd7c9df69c232e87515ecbdd3ec20bc8b8c9f;hpb=6f095a43607506faaceedb8b22633a5770bd7f7a;p=sbcl.git diff --git a/src/code/eval.lisp b/src/code/eval.lisp index b81bd7c..4c350e4 100644 --- a/src/code/eval.lisp +++ b/src/code/eval.lisp @@ -21,8 +21,7 @@ ;; evaluations/compilations, though [e.g. the ignored variable in ;; (DEFUN FOO (X) 1)]. -- CSR, 2003-05-13 (let ((fun (sb!c:compile-in-lexenv (gensym "EVAL-TMPFUN-") - `(lambda () - ,expr) + `(lambda () ,expr) lexenv))) (funcall fun))) @@ -122,13 +121,12 @@ (set (first args) (eval (second args))))) (let ((symbol (first name))) (case (info :variable :kind symbol) - ;; FIXME: I took out the *TOPLEVEL-AUTO-DECLARE* - ;; test here, and removed the - ;; *TOPLEVEL-AUTO-DECLARE* variable; the code - ;; should now act as though that variable is - ;; NIL. This should be tested.. (:special) - (t (return (%eval original-exp lexenv)))))))) + (t (return (%eval original-exp lexenv)))) + (unless (type= (info :variable :type symbol) + *universal-type*) + ;; let the compiler deal with type checking + (return (%eval original-exp lexenv))))))) ((progn) (eval-progn-body (rest exp) lexenv)) ((eval-when)