summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-generic.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/cl-generic.el')
-rw-r--r--lisp/emacs-lisp/cl-generic.el10
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index b0173dc991b..1c4b3fcd228 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -593,7 +593,12 @@ The set of acceptable TYPEs (also called \"specializers\") is defined
;; FIXME: For generic functions with a single method (or with 2 methods,
;; one of which always matches), using a tagcode + hash-table is
;; overkill: better just use a `cl-typep' test.
- (byte-compile
+ (funcall
+ ;; (featurep 'cl-generic) is only nil when we're called from
+ ;; cl--generic-prefill-dispatchers during the dump, at which
+ ;; point it's not worth loading the byte-compiler.
+ (if (featurep 'cl-generic)
+ #'byte-compile (lambda (exp) (eval (macroexpand-all exp) 'lexical)))
`(lambda (generic dispatches-left methods)
(let ((method-cache (make-hash-table :test #'eql)))
(lambda (,@fixedargs &rest args)
@@ -1117,6 +1122,9 @@ These match if the argument is `eql' to VAL."
(eql nil))
(cl--generic-prefill-dispatchers (terminal-parameter nil 'xterm--set-selection)
(eql nil))
+;; For lisp/minibuffer.el.
+(cl--generic-prefill-dispatchers 1 (head regexp))
+(cl--generic-prefill-dispatchers 0 (head old-styles-api))
;;; Support for cl-defstructs specializers.