src/: Argument lists don't only contain `argument' objects.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 30 Aug 2015 09:58:38 +0000 (10:58 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 6 Sep 2015 11:23:12 +0000 (12:23 +0100)
They can also contain `:ellipsis' markers.

src/c-types-impl.lisp
src/class-make-impl.lisp

index be2c055..b4f02e1 100644 (file)
   (make-instance 'c-function-type :subtype subtype
                 :arguments (if (and arguments
                                     (null (cdr arguments))
+                                    (not (eq (car arguments) :ellipsis))
                                     (eq (argument-type (car arguments))
                                         c-type-void))
                                nil
index 28c1958..32b2e61 100644 (file)
   (with-slots (body type) method
     (unless (or (not body)
                (every (lambda (arg)
-                        (or (argument-name arg)
+                        (or (eq arg :ellipsis)
+                            (argument-name arg)
                             (eq (argument-type arg) (c-type void))))
                       (c-function-arguments type)))
       (error "Abstract declarators not permitted in method definitions")))