Changeset 13214
- Timestamp:
- 02/12/11 18:10:07 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/clos.lisp
r13210 r13214 785 785 (substitute new-class old-class 786 786 (class-direct-superclasses subclass)))) 787 (finalize-class-subtree new-class) 787 788 new-class)) 788 789 (t … … 804 805 (%set-find-class name class) 805 806 class))))) 807 808 809 (defun finalize-class-subtree (class) 810 (when (every #'class-finalized-p (class-direct-superclasses class)) 811 (finalize-inheritance class) 812 (dolist (subclass (class-direct-subclasses class)) 813 (finalize-class-subtree subclass)))) 806 814 807 815 (defmacro defclass (&whole form name direct-superclasses direct-slots &rest options) … … 2578 2586 (compute-applicable-methods gf args)) 2579 2587 gf-list))) 2580 2588 (slots (class-slots (class-of instance)))) 2581 2589 (do* ((tail initargs (cddr tail)) 2582 2590 (initarg (car tail) (car tail))) 2583 2591 ((null tail)) 2584 2592 (unless (or (valid-initarg-p initarg slots) 2585 2593 (valid-methodarg-p initarg methods) 2586 2594 (eq initarg :allow-other-keys)) 2587 2595 (error 'program-error … … 2662 2670 ;; checking initarg validity 2663 2671 (do* ((tail all-keys (cddr tail)) 2664 2672 (initarg (car tail) (car tail))) 2665 2673 ((null tail)) 2666 2674 (unless (symbolp initarg) 2667 2675 (error 'program-error 2668 2669 2676 :format-control "Invalid initarg ~S." 2677 :format-arguments (list initarg)))) 2670 2678 (dolist (slot (class-slots (class-of instance))) 2671 2679 (let ((slot-name (slot-definition-name slot)))
Note: See TracChangeset
for help on using the changeset viewer.