Function: map--make-pcase-bindings

map--make-pcase-bindings is a byte-compiled function defined in map.el.gz.

Signature

(map--make-pcase-bindings ARGS)

Documentation

Return a list of pcase bindings from ARGS to the elements of a map.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/map.el.gz
(defun map--make-pcase-bindings (args)
  "Return a list of pcase bindings from ARGS to the elements of a map."
  (mapcar (if (< emacs-major-version 30)
              (lambda (elt)
                (cond ((consp elt)
                       `(app (map--pcase-map-elt ,(car elt) ,(caddr elt))
                             ,(cadr elt)))
                      ((keywordp elt)
                       (let ((var (intern (substring (symbol-name elt) 1))))
                         `(app (pcase--flip map-elt ,elt) ,var)))
                      (t `(app (pcase--flip map-elt ',elt) ,elt))))
            (lambda (elt)
              (cond ((consp elt)
                     `(app (map-elt _ ,(car elt) ,(caddr elt))
                           ,(cadr elt)))
                    ((keywordp elt)
                     (let ((var (intern (substring (symbol-name elt) 1))))
                       `(app (map-elt _ ,elt) ,var)))
                    (t `(app (map-elt _ ',elt) ,elt)))))
          args))