X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/ca0c10c49568d1d340296ae9e613f32a6a31bfc9..1d8206e9888ca942c039986ffb9c185c80b1e74c:/src/builtin.lisp diff --git a/src/builtin.lisp b/src/builtin.lisp index 5aad5f5..7bb38e5 100644 --- a/src/builtin.lisp +++ b/src/builtin.lisp @@ -140,19 +140,22 @@ (define-class-slot "init" (class stream) " struct ~A *sod__obj = ~A__imprint(p);~2%" (ilayout-struct-tag class) class) (setf used t)) - (format stream " ~A.~A =" isl - (sod-slot-name dslot)) + (format stream " {~% ~A ~A =" + (sod-slot-type dslot) + *sod-tmp-val*) (ecase (sod-initializer-value-kind init) (:simple (write (sod-initializer-value-form init) :stream stream :pretty nil :escape nil) (format stream ";~%")) - (:compound (format stream " (~A) {" - (sod-slot-type dslot)) + (:compound (format stream " {") (write (sod-initializer-value-form init) :stream stream :pretty nil :escape nil) - (format stream "};~%")))))))))))) + (format stream " };~%"))) + (format stream " ~A.~A = ~A;~% }~%" + isl (sod-slot-name dslot) + *sod-tmp-val*)))))))))) (unless used (format stream " ~A__imprint(p);~%" class)) (format stream "~&~: