Subject: bug#11495: closed (Re: bug#11495: 24.1.50; Edebug spec for `pcase')

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 11 Jun 2012 00:50:01 +0000

Your bug report

#11495: 24.1.50; Edebug spec for `pcase'

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
11495: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11495
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#11495: 24.1.50; Edebug spec for `pcase'
From: Stefan Monnier <[email-masked]>
To: Johan Bockgård <[email-masked]>
Cc: [email-masked]
Date: Sun, 10 Jun 2012 20:46:53 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> There's a FIXME note for the debug spec of the `pcase' macro.
> I think this should do the job:

Thanks.  I installed your code with some minor tweaks.

        Stefan

Subject: 24.1.50; Edebug spec for `pcase'
From: Johan Bockgård <[email-masked]>
To: [email-masked]
Date: Thu, 17 May 2012 01:07:44 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

There's a FIXME note for the debug spec of the `pcase' macro.

I think this should do the job:

    (def-edebug-spec
      pcase
      (form &rest (pcase-UPAT body)))

    (def-edebug-spec
      pcase-UPAT
      (&or symbolp
           ("or" &rest pcase-UPAT)
           ("and" &rest pcase-UPAT)
           ("`" pcase-QPAT)
           ("pred"
            &or lambda-expr
                ;; Punt on macros/special forms.
                ([&not functionp] fboundp &rest sexp)
                ([&or lambda-expr sexp] &rest form)
                sexp)
           ("guard" form)
           ("let" pcase-UPAT form)))

    (def-edebug-spec
      pcase-QPAT
      (&or ("," pcase-UPAT)
           (pcase-QPAT . [&or nil pcase-QPAT])
           sexp))