X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Ftypecheckfuns.lisp;h=e4a0d8b15b1c69275c82a2411f5d7c2e154c94dc;hb=568214ddf4c8ecc881caec98e20848d017974ec0;hp=f8253cc30e3acba14c0dc9320785456e02cb08b7;hpb=942e5de3f3e27e1cc6ae4aae69c040fa1dc7db00;p=sbcl.git diff --git a/src/code/typecheckfuns.lisp b/src/code/typecheckfuns.lisp index f8253cc..e4a0d8b 100644 --- a/src/code/typecheckfuns.lisp +++ b/src/code/typecheckfuns.lisp @@ -130,20 +130,26 @@ #+sb-xc (defun !typecheckfuns-cold-init () + (/show0 "in typecheckfuns-cold-init") (setf *typecheckfuns* (make-hash-table :test 'equal)) ;; Initialize the table of common typespecs. (setf *common-typespecs* #.*compile-time-common-typespecs*) ;; Initialize *TYPECHECKFUNS* with typecheckfuns for common typespecs. + (/show0 "typecheckfuns-cold-init initial setfs done") (macrolet ((macro () `(progn ,@(map 'list (lambda (typespec) - `(setf (gethash ',typespec *typecheckfuns*) - (lambda (arg) - (unless (typep arg ',typespec) - (typecheck-failure arg ',typespec)) - (values)))) - *common-typespecs*)))) + `(progn + (/show0 "setf") + (setf (gethash ',typespec *typecheckfuns*) + (progn + (/show0 "lambda") + (lambda (arg) + (unless (typep arg ',typespec) + (typecheck-failure arg ',typespec)) + (values)))))) + *common-typespecs*)))) (macro)) (values)) @@ -199,7 +205,11 @@ (member-type-p ctype) (numeric-type-p ctype) (array-type-p ctype) - (cons-type-p ctype)))) + (cons-type-p ctype) + (intersection-type-p ctype) + (union-type-p ctype) + (negation-type-p ctype) + (character-set-type-p ctype)))) ;;; Evaluate (at load/execute time) to a function which checks that ;;; its argument is of the specified type.