From 9cd4be5d9381678d010a5f01978abe953cf4543a Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Sat, 12 May 1990 21:12:58 +0000 Subject: [PATCH] Changed DEFTYPE to expand into %DEFTYPE, and made %DEFTYPE call %NOTE-TYPE-DEFINED. --- code/macros.lisp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/code/macros.lisp b/code/macros.lisp index 6ef414da8..cf0714527 100644 --- a/code/macros.lisp +++ b/code/macros.lisp @@ -189,12 +189,18 @@ :error-string 'deftype-error-string ) `(eval-when (compile load eval) - (setf (info type kind ',name) :defined) - (setf (info type expander ',name) - #'(lambda (,whole) ,@local-decs (block ,name ,body))) - ,@(when doc - `((setf (documentation ',name 'type) ,doc))) - ',name)))) + (%deftype ',name + #'(lambda (,whole) ,@local-decs (block ,name ,body)) + ,@(when doc `(,doc))))))) +;;; +(defun %deftype (name expander &optional doc) + (setf (info type kind name) :defined) + (setf (info type expander name) expander) + (when doc + (setf (documentation name 'type) doc)) + (c::%note-type-defined name) + name) + ;;; And so is DEFINE-SETF-METHOD. -- GitLab