An actual running implementation, which makes code that compiles.
[sod] / src / class-make-impl.lisp
index ae65392..09ce441 100644 (file)
   ;; Check that the arguments are named if we have a method body.
   (with-slots (body type) method
     (unless (or (not body)
-               (every #'argument-name (c-function-arguments type)))
+               (every (lambda (arg)
+                        (or (argument-name arg)
+                            (eq (argument-type arg) (c-type void))))
+                      (c-function-arguments type)))
       (error "Abstract declarators not permitted in method definitions")))
 
   ;; Check the method type.