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 #<forward-ref-class> #<standard-class standard-object>)

which failed. This commit mitigates this situation. Problem was masked
because of *clos-boot* never been set to T (recently fixed).
This commit is contained in:
Daniel Kochmanski 2018-04-08 10:56:50 +02:00
parent 7f1bb5c59b
commit ead9ab4f38

View file

@ -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