mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-10 00:00:39 -08:00
lisp/emacs-lisp/cl-*.el: Minor changes accumulated during new API design
* lisp/emacs-lisp/cl-macs.el (cl-deftype): Support dispatch on types that take arguments, as long as they can be used without arguments. * lisp/emacs-lisp/cl-generic.el (cl--generic-derived-mode-specializers): Rename from `cl--generic-derived-specializers` to clarify it's about derived modes and not derived types. (cl--generic-derived-mode-generalizer): Adjust accordingly and rename from `cl--generic-derived-generalizer` for the same reason. Ignore additional args in the tagcode function. (cl-generic-generalizers) <derived-mode>: Adjust accordingly. * lisp/emacs-lisp/macroexp.el (macroexp--dynamic-variable-p): Simplify.
This commit is contained in:
parent
13ec843352
commit
1e47f7492a
3 changed files with 38 additions and 12 deletions
|
|
@ -1047,7 +1047,7 @@ those methods.")
|
|||
('cl--generic-eql-generalizer '(eql 'x))
|
||||
('cl--generic-struct-generalizer 'cl--generic)
|
||||
('cl--generic-typeof-generalizer 'integer)
|
||||
('cl--generic-derived-generalizer '(derived-mode c-mode))
|
||||
('cl--generic-derived-mode-generalizer '(derived-mode c-mode))
|
||||
('cl--generic-oclosure-generalizer 'oclosure)
|
||||
(_ x))))
|
||||
|
||||
|
|
@ -1466,19 +1466,19 @@ This currently works for built-in types and types built on top of records."
|
|||
;; "&context (major-mode c-mode)" rather than
|
||||
;; "&context (major-mode (derived-mode c-mode))".
|
||||
|
||||
(defun cl--generic-derived-specializers (mode &rest _)
|
||||
(defun cl--generic-derived-mode-specializers (mode &rest _)
|
||||
;; FIXME: Handle (derived-mode <mode1> ... <modeN>)
|
||||
(mapcar (lambda (mode) `(derived-mode ,mode))
|
||||
(derived-mode-all-parents mode)))
|
||||
|
||||
(cl-generic-define-generalizer cl--generic-derived-generalizer
|
||||
90 (lambda (name) `(and (symbolp ,name) (functionp ,name) ,name))
|
||||
#'cl--generic-derived-specializers)
|
||||
(cl-generic-define-generalizer cl--generic-derived-mode-generalizer
|
||||
90 (lambda (name &rest _) `(and (symbolp ,name) (functionp ,name) ,name))
|
||||
#'cl--generic-derived-mode-specializers)
|
||||
|
||||
(cl-defmethod cl-generic-generalizers ((_specializer (head derived-mode)))
|
||||
"Support for (derived-mode MODE) specializers.
|
||||
Used internally for the (major-mode MODE) context specializers."
|
||||
(list cl--generic-derived-generalizer))
|
||||
(list cl--generic-derived-mode-generalizer))
|
||||
|
||||
(cl-generic-define-context-rewriter major-mode (mode &rest modes)
|
||||
`(major-mode ,(if (consp mode)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue