Subject: bug#29919: 26.0.90; Incorrect Edebug spec for cl-macrolet

From: Gemini Lasswell <[email-masked]>
Date: Sun, 31 Dec 2017 13:36:17 -0800

Edebug gives an error when trying to instrument a function which uses
cl-macrolet to define a macro with an argument list containing &rest.

To reproduce, enter the following into *scratch*:

(defun bug (x)
  (cl-macrolet ((wrap (func &rest args)
		      `(progn
			 (message "%s" ',args)
			 (funcall #',func ,@args))))
    (wrap + 1 x)))

Then C-u C-M-x.

Result: edebug-syntax-error: Invalid read syntax: "Failed matching"

Looks to me like the problem is that the Edebug spec is using (&rest arg)
when it should be using cl-macro-list, assuming that cl-macrolet
supports full CL argument lists.