X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/ab7d7f3c0cad5145d6e171ff29b8443bd34706cc..e2fb73d2f8fff2e604e9d59f55f7275e8999b04b:/packages/el-search/el-search.el diff --git a/packages/el-search/el-search.el b/packages/el-search/el-search.el index aaca38881..a1bdd23e2 100644 --- a/packages/el-search/el-search.el +++ b/packages/el-search/el-search.el @@ -389,6 +389,17 @@ of the definitions is limited to \"el-search\"." `(setf (alist-get ',name el-search--pcase-macros) (lambda ,args ,@body))) +(defun el-search--macroexpand-1 (pattern) + "Expand \"el-search\" PATTERN. +This is like `pcase--macroexpand', but expands only patterns +defined with `el-search-defpattern' and performs only one +expansion step. + +Return PATTERN if this pattern type was not defined with +`el-search-defpattern'." + (if-let ((expander (alist-get (car-safe pattern) el-search--pcase-macros))) + (apply expander (cdr pattern)) + pattern)) (defmacro el-search--with-additional-pcase-macros (&rest body) `(cl-letf ,(mapcar (pcase-lambda (`(,symbol . ,fun))