X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fmethods.lisp;h=66d873ef404390d428ca08f9fd3af54420f6488c;hb=df679ed627975948b1cee190f4d79c397588c43e;hp=dff22ed8f15d5b2428cd552069fbd56bb6bd3de6;hpb=796d3abb79fdb3ac896b639b83756ef9d86007f6;p=sbcl.git diff --git a/src/pcl/methods.lisp b/src/pcl/methods.lisp index dff22ed..66d873e 100644 --- a/src/pcl/methods.lisp +++ b/src/pcl/methods.lisp @@ -1182,15 +1182,19 @@ (defmacro mlookup (key info default &optional eq-p type) (unless (or (eq eq-p t) (null eq-p)) - (error "Invalid eq-p argument")) + (bug "Invalid eq-p argument: ~S" eq-p)) (ecase type (:simple - `(if (,(if eq-p 'eq 'eql) ,key (car ,info)) + `(if (locally + (declare (optimize (inhibit-warnings 3))) + (,(if eq-p 'eq 'eql) ,key (car ,info))) (cdr ,info) ,default)) (:assoc `(dolist (e ,info ,default) - (when (,(if eq-p 'eq 'eql) (car e) ,key) + (when (locally + (declare (optimize (inhibit-warnings 3))) + (,(if eq-p 'eq 'eql) (car e) ,key)) (return (cdr e))))) (:hash-table `(gethash ,key ,info ,default))))