X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-extensions.lisp;h=f87de0424ce606fd0a8a8efbd1d504d592dfb218;hb=731d5dd65a7b94b5d49d1663d9b60c3a406ce38c;hp=13638c4f834e755f45506a9f717ba7b7f017e9c4;hpb=bea5b384106a6734a4b280a76e8ebdd4d51b5323;p=sbcl.git diff --git a/src/code/early-extensions.lisp b/src/code/early-extensions.lisp index 13638c4..f87de04 100644 --- a/src/code/early-extensions.lisp +++ b/src/code/early-extensions.lisp @@ -581,7 +581,7 @@ (defmacro define-cached-synonym (name &optional (original (symbolicate "%" name))) - (let ((cached-name (symbolicate "%%" name "-cached"))) + (let ((cached-name (symbolicate "%%" name "-CACHED"))) `(progn (defun-cached (,cached-name :hash-bits 8 :hash-function (lambda (x) @@ -645,12 +645,14 @@ (defun legal-fun-name-p (name) (values (valid-function-name-p name))) +(deftype function-name () '(satisfies legal-fun-name-p)) + ;;; Signal an error unless NAME is a legal function name. (defun legal-fun-name-or-type-error (name) (unless (legal-fun-name-p name) (error 'simple-type-error :datum name - :expected-type '(or symbol list) + :expected-type 'function-name :format-control "invalid function name: ~S" :format-arguments (list name)))) @@ -818,8 +820,10 @@ (%failed-enforce-type ,value ',type)))) (defun %failed-enforce-type (value type) - (error 'simple-type-error ; maybe should be TYPE-BUG, subclass of BUG? - :value value + ;; maybe should be TYPE-BUG, subclass of BUG? If it is changed, + ;; check uses of it in user-facing code (e.g. WARN) + (error 'simple-type-error + :datum value :expected-type type :format-control "~@<~S ~_is not a ~_~S~:>" :format-arguments (list value type)))