Changeset 13217
- Timestamp:
- 02/13/11 11:41:56 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/clos.lisp
r13216 r13217 434 434 #'compute-class-precedence-list) 435 435 class)) 436 (dolist (class (class-precedence-list class))437 (when (typep class 'forward-referenced-class)438 (return-from std-finalize-inheritance)))439 436 (setf (class-slots class) 440 437 (funcall (if (eq (class-of class) +the-standard-class+) … … 484 481 (defun std-compute-class-precedence-list (class) 485 482 (let ((classes-to-order (collect-superclasses* class))) 483 (dolist (super classes-to-order) 484 (when (typep super 'forward-referenced-class) 485 (error "Can't compute class precedence list for class ~A ~ 486 which depends on forward referenced class ~A." class super))) 486 487 (topological-sort classes-to-order 487 488 (remove-duplicates … … 730 731 (add-writer-method class writer (slot-definition-name direct-slot))))) 731 732 (setf (class-direct-default-initargs class) direct-default-initargs) 732 (funcall (if (eq (class-of class) +the-standard-class+) 733 #'std-finalize-inheritance 734 #'finalize-inheritance) 735 class) 733 (maybe-finalize-class-subtree class) 736 734 (values)) 737 735 … … 785 783 (substitute new-class old-class 786 784 (class-direct-superclasses subclass)))) 787 ( finalize-class-subtree new-class)785 (maybe-finalize-class-subtree new-class) 788 786 new-class)) 789 787 (t … … 807 805 808 806 809 (defun finalize-class-subtree (class)807 (defun maybe-finalize-class-subtree (class) 810 808 (when (every #'class-finalized-p (class-direct-superclasses class)) 811 809 (finalize-inheritance class) 812 810 (dolist (subclass (class-direct-subclasses class)) 813 ( finalize-class-subtree subclass))))811 (maybe-finalize-class-subtree subclass)))) 814 812 815 813 (defmacro defclass (&whole form name direct-superclasses direct-slots &rest options)
Note: See TracChangeset
for help on using the changeset viewer.