Subject: Re: bug#50482: Unhelpful error message whilst byte-compiling a function.

From: Alan Mackenzie <[email-masked]>
Date: Thu, 9 Sep 2021 18:12:08 +0000

Hello again, Lars.

On Thu, Sep 09, 2021 at 16:42:29 +0200, Lars Ingebrigtsen wrote:
> Alan Mackenzie <[email-masked]> writes:

> > I'm working on a function which begins thus:
> >
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> > (defun jit-lock--run-functions-new (beg end &optional last-fun)
> >   (let ((tight-beg nil) (tight-end nil) ; The region we have fully fontified.
> >         (loose-beg beg) (loose-end end)) ; The maximum region we have fontified
> >                                         ; with at least some of
> >                                         ; `jit-lock-functions'.
> >     (run-hook-wrapped
> >      'jit-lock-functions
> > ......
> > ......
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> >
> > On doing M-x compile-defun on this function, I get as sum total of the
> > output in *Compile-Log* this:
> >
> > Buffer jit-lock.el:416:1: Error: Wrong number of arguments: #<subr
> > macroexp--warn-wrap>, 3

> If I just put that in a buffer (and add some closing parentheses), I
> don't get that warning.  Is there something else needed?

> > ..  I don't know what this means.  Line 416 is the line where the defun
> > starts.  I don't have `macroexp--warn-wrap' anywhere in my source code,
> > it's not clear to what form 3 arguments are being wrongly passed, or
> > where.

> The warn-wrap stuff comes from `with-suppressed-warnings', I think.

The problem was I hadn't compiled macroexp.el for a long time, and in
the meantime macroexp--warn-wrap had indeed acquired an extra parameter.
The version I have is expecting 2 arguments, but is being supplied with
3.

Apologies for sending you on a wild goose chase.  I will close the bug
as not a bug.

> -- 
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no

-- 
Alan Mackenzie (Nuremberg, Germany).