projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.12.29:
[sbcl.git]
/
src
/
pcl
/
cpl.lisp
diff --git
a/src/pcl/cpl.lisp
b/src/pcl/cpl.lisp
index
f64d72a
..
fd09bfd
100644
(file)
--- 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 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)
(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)
(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
(cpl-forward-referenced-class-error class c)
(let ((cpd (get-cpd c)))
(unless (cpd-class cpd) ;If we have already done this