From ead9ab4f380a867ab57565e5acb68886bd8a5ae8 Mon Sep 17 00:00:00 2001 From: Daniel Kochmanski Date: Sun, 8 Apr 2018 10:56:50 +0200 Subject: [PATCH] validate-superclass: return T when class is a forward-referenced-class defclass calls indirectly ensure-class-using-class from builtin module which calls make-instance on metaclass (which could be a forward-referenced class). That triggers validate-superclass on (validate-superclass # #) which failed. This commit mitigates this situation. Problem was masked because of *clos-boot* never been set to T (recently fixed). --- src/clos/standard.lsp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/clos/standard.lsp b/src/clos/standard.lsp index 435ccf8e5..225960428 100644 --- a/src/clos/standard.lsp +++ b/src/clos/standard.lsp @@ -261,10 +261,9 @@ argument was supplied for metaclass ~S." (class-of class)))))))) (c2 (class-of superclass))) (or (eq c1 c2) (and (eq c1 +the-standard-class+) (eq c2 +the-funcallable-standard-class+)) - (and (eq c2 +the-standard-class+) (eq c1 +the-funcallable-standard-class+)) - )) - (forward-referenced-class-p superclass) - )) + (and (eq c2 +the-standard-class+) (eq c1 +the-funcallable-standard-class+)))) + (or (forward-referenced-class-p class) + (forward-referenced-class-p superclass)))) ;;; ---------------------------------------------------------------------- ;;; FINALIZATION OF CLASS INHERITANCE