chiark / gitweb /
src/classes.lisp: Give initargs a useful print representation.
[sod] / src / module-parse.lisp
index 0a3cd28296adcfbb129cbf61cc5a8641bf584d9e..747bdf75157c2905b1906b9857ab73a8525dcb4d 100644 (file)
@@ -267,7 +267,14 @@ (defun parse-class-body (scanner pset name supers)
                                  (continue ()
                                    (setf duff t)
                                    (list (find-sod-class "SodObject"))))))
-             superclasses))
+             (find-duplicates (lambda (first second)
+                                (declare (ignore second))
+                                (setf duff t)
+                                (cerror* "Class `~A' has duplicate ~
+                                          direct superclass `~A'"
+                                         name first))
+                              superclasses)
+             (delete-duplicates superclasses)))
           (synthetic-name (or name
                               (let ((var (synthetic-name)))
                                 (unless pset