From 77fcd05b064d1f9ce272956691ec3883dea53220 Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Fri, 11 May 2018 03:55:15 +0300 Subject: [PATCH] define-method-combination: fix :documentation processing. Don't store (nil) if there's no :documentation. --- src/pcl/defcombin.lisp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/pcl/defcombin.lisp b/src/pcl/defcombin.lisp index 9705f0e3b9..303f12696f 100644 --- a/src/pcl/defcombin.lisp +++ b/src/pcl/defcombin.lisp @@ -89,13 +89,16 @@ (documentation (getf (cddr whole) :documentation canary)) (ioa (getf (cddr whole) :identity-with-one-argument nil)) (operator - (getf (cddr whole) :operator type-name))) - (unless (eql documentation canary) - (unless (stringp documentation) - (%program-error "~@<~S argument to the short form of ~S must be a string.~:>" - :documentation 'define-method-combination))) + (getf (cddr whole) :operator type-name))) + (unless (or (eq documentation canary) + (stringp documentation)) + (%program-error "~@<~S argument to the short form of ~S must be a string.~:>" + :documentation 'define-method-combination)) `(load-short-defcombin - ',type-name ',operator ',ioa ',documentation (sb-c:source-location)))) + ',type-name ',operator ',ioa + ',(and (neq documentation canary) + documentation) + (sb-c:source-location)))) (defun load-short-defcombin (type-name operator ioa doc source-location) (let ((info (make-method-combination-info