X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/4e561d89167ab39483f850df3ebc1f8c82dc9e7d..e75eb63d81df077c02c6c74439fb14a34d4fb93e:/src/method-impl.lisp diff --git a/src/method-impl.lisp b/src/method-impl.lisp index 8de19da..49c6676 100644 --- a/src/method-impl.lisp +++ b/src/method-impl.lisp @@ -323,19 +323,18 @@ method (let* ((message-type (sod-message-type message)) (return-type (c-type-subtype message-type)) - (voidp (eq return-type (c-type void))) (basic-tail (effective-method-basic-argument-names method))) (flet ((method-kernel (target) (dolist (before before-methods) (invoke-method codegen :void basic-tail before)) - (if (or voidp (null after-methods)) + (if (null after-methods) (funcall body target) (convert-stmts codegen target return-type (lambda (target) (funcall body target) (dolist (after (reverse after-methods)) (invoke-method codegen :void - after basic-tail))))))) + basic-tail after))))))) (invoke-delegation-chain codegen target basic-tail around-methods #'method-kernel)))))