summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-generic.el
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2021-08-08 12:39:11 +0200
committerMichael Albinus <michael.albinus@gmx.de>2021-08-08 12:39:11 +0200
commite763c8947a55bfff703427b9bb0524638e5d7eae (patch)
tree186b35800785f76b91a0516960b22a01c2302854 /lisp/emacs-lisp/cl-generic.el
parent80cccd7ff15d254cb412e9939e27a348fbaa0425 (diff)
parentadab672edb3fad0851a52e3b6ccf3ac31c80b025 (diff)
downloademacs-e763c8947a55bfff703427b9bb0524638e5d7eae.tar.gz
emacs-e763c8947a55bfff703427b9bb0524638e5d7eae.tar.bz2
emacs-e763c8947a55bfff703427b9bb0524638e5d7eae.zip
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Diffstat (limited to 'lisp/emacs-lisp/cl-generic.el')
-rw-r--r--lisp/emacs-lisp/cl-generic.el12
1 files changed, 11 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index 544704be387..db5a5a0c89a 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -1158,7 +1158,17 @@ These match if the argument is a cons cell whose car is `eql' to VAL."
(cl-defmethod cl-generic-generalizers ((specializer (head eql)))
"Support for (eql VAL) specializers.
These match if the argument is `eql' to VAL."
- (puthash (cadr specializer) specializer cl--generic-eql-used)
+ (let ((form (cadr specializer)))
+ (puthash (if (or (not (symbolp form)) (macroexp-const-p form))
+ (eval form t)
+ ;; FIXME: Compatibility with Emacs<28. For now emitting
+ ;; a warning would be annoying for third party packages
+ ;; which can't use the new form without breaking compatibility
+ ;; with older Emacsen, but in the future we should emit
+ ;; a warning.
+ ;; (message "Quoting obsolete `eql' form: %S" specializer)
+ form)
+ specializer cl--generic-eql-used))
(list cl--generic-eql-generalizer))
(cl--generic-prefill-dispatchers 0 (eql nil))