;;; 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*)
(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
(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