chiark / gitweb /
src/c-types-impl.lisp: Reorder `merge-keyword-lists' input lists.
[sod] / src / builtin.lisp
index c7cb1488fd01bd62f12aeed20bcc4abde4c03c22..77eca391e49ea79bbf09e7e14c684274273ac411 100644 (file)
@@ -297,17 +297,15 @@ (defmethod sod-message-effective-method-class
 (defmethod method-keyword-argument-lists
     ((method initialization-effective-method) direct-methods)
   (append (call-next-method)
-         (delete-duplicates
-          (mapcan (lambda (class)
-                    (let ((initargs (sod-class-initargs class)))
-                      (and initargs
-                           (list (cons (mapcar #'sod-initarg-argument
-                                               initargs)
-                                       (format nil "initargs for ~A"
-                                               class))))))
-                  (sod-class-precedence-list
-                   (effective-method-class method)))
-          :key #'argument-name)))
+         (mapcan (lambda (class)
+                   (let ((initargs (sod-class-initargs class)))
+                     (and initargs
+                          (list (cons (format nil "initargs for ~A"
+                                              class)
+                                      (mapcar #'sod-initarg-argument
+                                              initargs))))))
+                 (sod-class-precedence-list
+                  (effective-method-class method)))))
 
 (defmethod lifecycle-method-kernel
     ((method initialization-effective-method) codegen target)
@@ -541,7 +539,8 @@ (defun bootstrap-classes (module)
 
     ;; Done.
     (dolist (class classes)
-      (finalize-sod-class class)
+      (unless (finalize-sod-class class)
+       (error "Failed to finalize built-in class"))
       (add-to-module module class))))
 
 (export '*builtin-module*)