]> code.delx.au - gnu-emacs-elpa/commitdiff
el-search--matcher: refine when to warn or error
authorMichael Heerdegen <michael_heerdegen@web.de>
Sat, 12 Dec 2015 13:43:10 +0000 (14:43 +0100)
committerMichael Heerdegen <michael_heerdegen@web.de>
Sat, 12 Dec 2015 13:44:06 +0000 (14:44 +0100)
packages/el-search/el-search.el

index e1baf6d334fa45e5ab4a9d8085123fd19bba1e19..6057b82ac8e27a9f3cf36d8c725e60649acba59d 100644 (file)
@@ -451,14 +451,15 @@ this pattern type."
      ,@body))
 
 (defun el-search--matcher (pattern &rest body)
-  (eval
+  (eval ;use `eval' to allow for user defined pattern types at run time
    `(el-search--with-additional-pcase-macros
-     (let ((warning-suppress-log-types '((bytecomp))))
-       (byte-compile
-        (lambda (expression)
-          (pcase expression
-            (,pattern ,@(or body (list t)))
-            (_        nil))))))))
+     (let ((byte-compile-debug t) ;make undefined pattern types raise an error
+           (warning-suppress-log-types '((bytecomp)))
+           (pcase--dontwarn-upats (cons '_ pcase--dontwarn-upats)))
+       (byte-compile (lambda (expression)
+                       (pcase expression
+                         (,pattern ,@(or body (list t)))
+                         (_        nil))))))))
 
 (defun el-search--match-p (matcher expression)
   (funcall matcher expression))