bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#66979: Wrong number of arguments with completion-at-point


From: Alan Mackenzie
Subject: bug#66979: Wrong number of arguments with completion-at-point
Date: Tue, 7 Nov 2023 19:50:22 +0000

Hello, Stefan

On Tue, Nov 07, 2023 at 13:31:40 -0500, Stefan Monnier wrote:
> >> Some recent change broke completion-at-point:

> >> 0. emacs -Q
> >> 1. (setq debug-on-error t)
> >> 2. Type in the *scratch*:

> >>   (defun a M-C-i

> >> raises the error (wrong-number-of-arguments (2 . 2) 1)

> > Stefan, this looks like another case for the recently fixed
> > bug#58148, bug#58396, bug#58557.

> So you're suggesting we should remove the `debug` from the
> `condition-case` in `elisp--local-variables`?

> This was added by Alan in:

>     commit f931cebce76d911dfc61274e0a8c1de3627b9179
>     Author: Alan Mackenzie <acm@muc.de>
>     Date:   Wed Sep 20 15:51:17 2023 +0000

>     Insert symbol `debug' into two condition-case handlers
    
>     This fixes bug#65622.  Also correct a mismatch between a
>     function to which advice is added, and that from which it is
>     removed.
    
>     * lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load):
>     Add a `debug' to the condition-case handler for `error', so
>     that a useful backtrace will be produced on a macro expansion
>     error.
    
>     * lisp/progmodes/elisp-mode.el (elisp--local-variables): Add
>     `debug' to a condition-case handler, as above.  In the
>     advice-remove call, give the same function, macroexpand-1, as
>     in the corresponding advice-add call.

> Alan do you remember why you also added the `debug` to the
> condition-case in `elisp--local-variables`?
> The rest of the commit looks right to me.

I was trying to debug an error in eager macro expansion (i.e. macro
expansion in forms called directly by read), and that was the
condition-case that was suppressing the backtrace.

> Macro expansion errors in there are perfectly normal since
> `elisp--local-variables` routinely passes incomplete code to
> macroexpand.  IOW most errors signal'd in there probably don't need to
> be debugged at all.

But when somebody has set debug-on-error to t, they _want_ those errors
signalled, surely?

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]