X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/b2983f3591981a916f748362d91ff0e2817552cb..01778b39c53316dda3f757c49276d034039ee9cb:/src/class-make-proto.lisp diff --git a/src/class-make-proto.lisp b/src/class-make-proto.lisp index d075304..0e3c5d7 100644 --- a/src/class-make-proto.lisp +++ b/src/class-make-proto.lisp @@ -46,12 +46,13 @@ (defun make-sod-class (name superclasses pset &optional location) (with-default-error-location (location) (let* ((pset (property-set pset)) (best-class (or (get-property pset :lisp-metaclass :symbol nil) - (if superclasses - (maximum (mapcar #'class-of superclasses) - #'subtypep - (format nil "Lisp metaclass for ~A" - name)) - 'sod-class))) + (select-minimal-class-property + superclasses #'class-of #'subtypep 'sod-class + "Lisp metaclass" + :present (lambda (class) + (format nil "`~S'" + (class-name class))) + :allow-empty t))) (class (make-instance best-class :name name :superclasses superclasses