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))