From 57b365324f35a6237602ab840c23f4f06c8c317c Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sat, 3 Aug 2019 15:15:57 +0100 Subject: [PATCH] src/classes.lisp: Give initargs a useful print representation. --- doc/SYMBOLS | 2 ++ src/classes.lisp | 13 +++++++++++++ 2 files changed, 15 insertions(+) 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. -- 2.11.0