Subject: bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment

From: Jens Schmidt <[email-masked]>
Date: Fri, 22 Sep 2023 23:26:05 +0200

Stefan Monnier <[email-masked]> writes:

> I'm in favor of requiring *something* after the declarations.
> So yes, the first case above is a bug and should be fixed, but rather
> than return
>
>     (("Allows interactive calls." (interactive "^P"))
>      nil)
>
> I think it should return something like
>
>     (("Allows interactive calls." (interactive "^P"))
>      ,(macroexp-warn-and-return "Missing body" ...))
>
>
> -- Stefan

I managed to cobble up something like that, but are you really sure you
want to warn about an empty/missing body?  I have a number of arguments
against that, the main being that `cl-defgeneric' is processed through
`macroexp-parse-body' exactly like `defun' - and for `cl-defgeneric' an
empty body seems to be the rule and not the exception.