Subject: Re: bug#27408: 26.0.50; macro setq-local does not have a debug declaration

From: [email-masked]
Date: Sat, 17 Jun 2017 15:45:46 -0400

severity 27408 minor
tags 27408 + confirmed
quit

"Stefan-W. Hahn" <[email-masked]> writes:

> Also I'm not sure it is worth to have a debug declaration for every
> macro, but I think for setq-local it makes sense, see attached patch.

Probably most macros should have a declaration, assuming someone takes
the time to make one (if nobody makes one, I would take that as a sign
it's not important).  A few, like `declare-function', will probably
never really need one.  I haven't looked through the whole list, but I
guess `woman-pop' and `woman-push' should be replaced with plain `pop'
and `push'.

>  (defmacro setq-local (var val)
>    "Set variable VAR to value VAL in current buffer."
>    ;; Can't use backquote here, it's too early in the bootstrap.
> +  (declare (debug symbolp form))
>    (list 'set (list 'make-local-variable (list 'quote var)) val))

I get a compile failure after applying this:

  ELC      ../../emacs-master/lisp/subr.elc
Reloading stale subr.el
Loading /home/npostavs/src/emacs/emacs-master/lisp/subr.el (source)...
Eager macro-expansion failure: (wrong-number-of-arguments (3 . 3) 4)
Eager macro-expansion failure: (wrong-number-of-arguments (3 . 3) 4)

In toplevel form:
../../emacs-master/lisp/subr.el:121:1:Error: Wrong number of arguments: (3 . 3), 4