From: Mark Wooding Date: Sun, 30 Aug 2015 09:58:38 +0000 (+0100) Subject: src/: Argument lists don't only contain `argument' objects. X-Git-Tag: 0.2.0~29 X-Git-Url: https://git.distorted.org.uk/~mdw/sod/commitdiff_plain/c07860afc55d0d49b9e920dca790b902b8d5cb15?hp=b0ff693c25bf81f935efa15a44fdad6ce95e9f91 src/: Argument lists don't only contain `argument' objects. They can also contain `:ellipsis' markers. --- diff --git a/src/c-types-impl.lisp b/src/c-types-impl.lisp index be2c055..b4f02e1 100644 --- a/src/c-types-impl.lisp +++ b/src/c-types-impl.lisp @@ -431,6 +431,7 @@ (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 diff --git a/src/class-make-impl.lisp b/src/class-make-impl.lisp index 28c1958..32b2e61 100644 --- a/src/class-make-impl.lisp +++ b/src/class-make-impl.lisp @@ -214,7 +214,8 @@ (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")))