GNU bug report logs - #65344
28.2; Unable to Edebug cl-flet form which uses argument destructuring

Previous Next

Package: emacs;

Reported by: Brandon Irizarry <brandon.irizarry <at> gmail.com>

Date: Wed, 16 Aug 2023 18:23:02 UTC

Severity: normal

Found in version 28.2

Fixed in version 30.1

Done: Gerd Möllmann <gerd.moellmann <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Brandon Irizarry <brandon.irizarry <at> gmail.com>
Cc: 65344 <at> debbugs.gnu.org
Subject: bug#65344: 28.2; Unable to Edebug cl-flet form which uses argument destructuring
Date: Thu, 17 Aug 2023 02:55:34 +0200
Brandon Irizarry <brandon.irizarry <at> gmail.com> writes:

> To reproduce: in emacs invoked with '-Q', in the Scratch buffer, insert the
> following
> code:
>
> (require 'cl-macs)
>
> (cl-flet ((fn ((min max))
>      (message "%d %d" min max)))
>   (fn '(2 3)))
>
> The cl-flet form evaluates fine (e.g. with C-x C-e or C-M-x), which
> leads me to conclude that this construct is legal. However, attempting
> to instrument the form with Edebug (C-u C-M-x) results in an enormous
> backtrace starting with
>
> Debugger entered--Lisp error: (invalid-read-syntax "Expected" "lambda")

Thanks.  I agree.  This doesn't seem to be a new bug.

Edebug first tries to match (symbolp form), this is the first branch in
an &or - this calls `edebug-list-form' which binds edebug-gate --> t
and tries to
(edebug-match-specs cursor '(lambda-expr body) 'edebug-match-specs)
which doesn't match but errors because of the bound `edebug-gate'.

Who knows how to fix this correctly?

Michael.




This bug report was last modified 1 year and 261 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.