(when (or init initargs)
(focus-this-class)
(let* ((slot-type (sod-slot-type dslot))
- (slot-default (sod-initializer-value init))
(target (format nil "~A.~A"
isl (sod-slot-name dslot)))
- (initinst (set-from-initializer target
- slot-type
- slot-default)))
+ (initinst (and init
+ (set-from-initializer
+ target slot-type
+ (sod-initializer-value init)))))
;; If there are applicable initialization arguments,
;; check to see whether they were supplied.
(dolist (initarg (reverse (remove-duplicates
initargs
:key #'sod-initarg-name
- :test #'string=)))
+ :test #'string=
+ :from-end t)))
(let ((arg-name (sod-initarg-name initarg)))
(setf initinst (make-if-inst
(format nil "suppliedp.~A" arg-name)