X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftypecheckfuns.lisp;h=f8253cc30e3acba14c0dc9320785456e02cb08b7;hb=b34c64b50e8ade72fabb565a38841c4710ee8f40;hp=b36fe1735f6bd10fbbba07e3b1f21ac99d83531a;hpb=e33fb894f991b2926d8f3bace9058e4c0b2c3a37;p=sbcl.git diff --git a/src/code/typecheckfuns.lisp b/src/code/typecheckfuns.lisp index b36fe17..f8253cc 100644 --- a/src/code/typecheckfuns.lisp +++ b/src/code/typecheckfuns.lisp @@ -122,7 +122,7 @@ ;;; Memoize the FORM which returns a typecheckfun for TYPESPEC. (defmacro memoized-typecheckfun-form (form typespec) - (let ((n-typespec (gensym "TYPESPEC"))) + (with-unique-names (n-typespec) `(let ((,n-typespec ,typespec)) (or (gethash ,n-typespec *typecheckfuns*) (setf (gethash ,n-typespec *typecheckfuns*) @@ -186,7 +186,7 @@ (setf (gethash typespec *typecheckfuns*) unmemoized-typecheckfun) ;; UNMEMOIZED-TYPECHECKFUN shouldn't be NIL unless the compiler ;; knew that the memo would exist, so we shouldn't be here. - (error "internal error: no typecheckfun memo for ~% ~S" typespec))) + (bug "no typecheckfun memo for ~S" typespec))) (defun ctype-needs-to-be-interpreted-p (ctype) ;; What we should really do is factor out the code in @@ -207,7 +207,7 @@ ;;; The name is slightly misleading, since some cases are memoized, so ;;; we might reuse a value which was made earlier instead of creating ;;; a new one from scratch. -(declaim (ftype (function (t) function) typespec-typecheckfun)) +(declaim (ftype (sfunction (t) function) typespec-typecheckfun)) (defun typespec-typecheckfun (typespec) ;; a general-purpose default case, hopefully overridden by the ;; DEFINE-COMPILER-MACRO implementation @@ -221,7 +221,7 @@ (let* ((typespec (second typespec-form)) (ctype (specifier-type typespec))) (aver (= 2 (length typespec-form))) - (cond ((structure-class-p ctype) + (cond ((structure-classoid-p ctype) `(structure-object-typecheckfun ,typespec-form)) ((ctype-needs-to-be-interpreted-p ctype) whole) ; i.e. give up compiler macro