mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-02 15:40:55 -08:00
DEFCLASS does not need an extra call to FIND-CLASS, since ENSURE-CLASS already
outputs the right value.
This commit is contained in:
parent
a5aa7f83e3
commit
f9cf423040
1 changed files with 5 additions and 2 deletions
|
|
@ -36,6 +36,7 @@
|
|||
(setf (first scan) slot))
|
||||
`(eval-when (compile load eval)
|
||||
;; at compile time just create the definition
|
||||
(prog1
|
||||
(ensure-class
|
||||
',metaclass-name
|
||||
',name
|
||||
|
|
@ -50,14 +51,16 @@
|
|||
name
|
||||
:metaclass-name metaclass-name
|
||||
:superiors (mapcar #'find-class superclasses)
|
||||
:slots all-slots)
|
||||
(find-class ',name)))))
|
||||
:slots all-slots))))))
|
||||
|
||||
(defun collect-all-slots (slots name superclasses-names)
|
||||
(let* ((superclasses (mapcar #'find-class superclasses-names))
|
||||
(cpl (compute-class-precedence-list name superclasses)))
|
||||
(collect-slotds cpl slots)))
|
||||
|
||||
;;
|
||||
;; INV: ENSURE-CLASS should always output the class it creates.
|
||||
;;
|
||||
(defun ensure-class (metaclass name superclasses direct-slots all-slots
|
||||
default-initargs documentation)
|
||||
(case metaclass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue