From: Mark Wooding Date: Sat, 3 Aug 2019 14:15:57 +0000 (+0100) Subject: src/classes.lisp: Give initargs a useful print representation. X-Git-Url: https://git.distorted.org.uk/~mdw/sod/commitdiff_plain/57b365324f35a6237602ab840c23f4f06c8c317c src/classes.lisp: Give initargs a useful print representation. --- diff --git a/doc/SYMBOLS b/doc/SYMBOLS index 023bda6..3df75e0 100644 --- a/doc/SYMBOLS +++ b/doc/SYMBOLS @@ -1402,6 +1402,8 @@ cl:print-object sod-message t sod-method t sod-slot t + sod-slot-initarg t + sod-user-initarg t temporary-name t update-inst t var-inst t diff --git a/src/classes.lisp b/src/classes.lisp index a59a47c..1856b30 100644 --- a/src/classes.lisp +++ b/src/classes.lisp @@ -342,12 +342,25 @@ (:documentation "Describes an initialization argument defined by the user.")) +(defmethod print-object ((initarg sod-user-initarg) stream) + (maybe-print-unreadable-object (initarg stream :type t) + (pprint-c-type (sod-initarg-type initarg) stream + (sod-initarg-name initarg)) + (awhen (sod-initarg-default initarg) + (format stream " = ~A" it)))) + (export 'sod-slot-initarg) (defclass sod-slot-initarg (sod-initarg) ((slot :initarg :slot :type sod-slot :reader sod-initarg-slot)) (:documentation "Describes an initialization argument used to initialize a slot.")) +(defmethod print-object ((initarg sod-slot-initarg) stream) + (maybe-print-unreadable-object (initarg stream :type t) + (pprint-c-type (sod-initarg-type initarg) stream + (sod-initarg-name initarg)) + (format stream " for ~A" (sod-initarg-slot initarg)))) + ;;;-------------------------------------------------------------------------- ;;; Messages and methods.