(dolist (item (ichain-body ichain))
(etypecase item
(vtable-pointer
- (format stream " ~A._vt = &~A;~%"
- ich (vtable-name class (ichain-head ichain))))
+ nil)
(islots
(let ((isl (format nil "~A.~A"
ich
(let ((dslot (effective-slot-direct-slot slot))
(init (effective-slot-initializer slot)))
(when init
+ (format stream " ~A =" isl)
(ecase (sod-initializer-value-kind init)
- (:single
- (format stream " ~A = ~A;~%"
- isl (sod-initializer-value-form init)))
- (:compound
- (format stream " ~A = (~A)~A;~%"
- isl (sod-slot-type dslot)
- (sod-initializer-value-form init)))))))))))))
+ (:simple (write (sod-initializer-value-form init)
+ :stream stream
+ :pretty nil :escape nil)
+ (format stream ";~%"))
+ (:compound (format stream " (~A) {"
+ (sod-slot-type dslot))
+ (write (sod-initializer-value-form init)
+ :stream stream
+ :pretty nil :escape nil)
+ (format stream "};~%"))))))))))))
(format stream "~&~:
return (p);
}~2%")))