X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fcpl.lisp;h=fd09bfd3e894b31f0aa8b515a7ad0ea52f1ef57f;hb=bd0ba0f214518e8d72ff2d44de5a1e3e4b02af2c;hp=f64d72ad0f0b9dd9948787ec1012a3890503eec3;hpb=a29fb6bb708af5e3a5af6158e08051a5389d22f5;p=sbcl.git diff --git a/src/pcl/cpl.lisp b/src/pcl/cpl.lisp index f64d72a..fd09bfd 100644 --- a/src/pcl/cpl.lisp +++ b/src/pcl/cpl.lisp @@ -96,7 +96,8 @@ ((and (null supers) (not (forward-referenced-class-p class))) (list class)) - ((and (null (cdr supers)) + ((and (car supers) + (null (cdr supers)) (not (forward-referenced-class-p (car supers)))) (cons class (compute-std-cpl (car supers) @@ -119,7 +120,9 @@ (or (gethash c table) (setf (gethash c table) (make-cpd)))) (walk (c supers) - (if (forward-referenced-class-p c) + (declare (special *allow-forward-referenced-classes-in-cpl-p*)) + (if (and (forward-referenced-class-p c) + (not *allow-forward-referenced-classes-in-cpl-p*)) (cpl-forward-referenced-class-error class c) (let ((cpd (get-cpd c))) (unless (cpd-class cpd) ;If we have already done this