src/method-aggregate.lisp: Allow useful behaviour if no primary methods.
[sod] / src / class-output.lisp
index abe5132..806de35 100644 (file)
                         (c-function-keywords type))))
         (when keys
           (format stream "struct ~A {~%~
-                          ~{  unsigned ~A : 1;~%~}~
+                          ~{  unsigned ~A: 1;~%~}~
                           };~2%"
                   (direct-method-suppliedp-struct-tag method)
                   (mapcar #'argument-name keys))))))))
@@ -511,7 +511,7 @@ const struct ~A ~A__classobj = {~%"
                                  class)
           (format stream "~&struct ~A {~%"
                   (effective-method-keyword-struct-tag method))
-          (format stream "~{  unsigned ~A__suppliedp : 1;~%~}"
+          (format stream "~{  unsigned ~A__suppliedp: 1;~%~}"
                   (mapcar #'argument-name keys))
           (dolist (key keys)
             (write-string "  " stream)
@@ -659,7 +659,7 @@ const struct ~A ~A__classobj = {~%"
     (let ((dslot (effective-slot-direct-slot slot)))
       (or (some (lambda (super)
                  (find dslot (sod-class-class-initializers super)
-                       :test #'sod-initializer-slot))
+                       :key #'sod-initializer-slot))
                (sod-class-precedence-list class))
          (effective-slot-initializer slot)))))
 
@@ -675,13 +675,9 @@ const struct ~A ~A__classobj = {~%"
   (:method ((slot effective-slot) (instance sod-class) stream)
     (let ((init (find-class-initializer slot instance))
          (direct-slot (effective-slot-direct-slot slot)))
-      (ecase (sod-initializer-value-kind init)
-       (:simple (format stream "        /* ~15@A = */ ~A,~%"
-                        (sod-slot-name direct-slot)
-                        (sod-initializer-value-form init)))
-       (:compound (format stream "        /* ~15@A = */ ~@<{ ~;~A~; },~:>~%"
-                          (sod-slot-name direct-slot)
-                          (sod-initializer-value-form init)))))))
+      (format stream "        /* ~15@A = */ ~A,~%"
+             (sod-slot-name direct-slot)
+             (sod-initializer-value init)))))
 
 (defmethod hook-output progn
     ((slot sod-class-effective-slot) (reason (eql 'class)) sequencer)