mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-18 18:00:11 +00:00
* lisp/emacs-lisp/eieio.el (eieio pcase macro): Remove unused var is
This commit is contained in:
parent
8f808be68b
commit
0bb9aeddd6
1 changed files with 9 additions and 10 deletions
|
@ -351,21 +351,20 @@ Elements of FIELDS can be of the form (NAME PAT) in which case the
|
|||
contents of field NAME is matched against PAT, or they can be of
|
||||
the form NAME which is a shorthand for (NAME NAME)."
|
||||
(declare (debug (&rest [&or (sexp pcase-PAT) sexp])))
|
||||
(let ((is (make-symbol "table")))
|
||||
;; FIXME: This generates a horrendous mess of redundant let bindings.
|
||||
;; `pcase' needs to be improved somehow to introduce let-bindings more
|
||||
;; sparingly, or the byte-compiler needs to be taught to optimize
|
||||
;; them away.
|
||||
;; FIXME: `pcase' does not do a good job here of sharing tests&code among
|
||||
;; various branches.
|
||||
`(and (pred eieio-object-p)
|
||||
;; FIXME: This generates a horrendous mess of redundant let bindings.
|
||||
;; `pcase' needs to be improved somehow to introduce let-bindings more
|
||||
;; sparingly, or the byte-compiler needs to be taught to optimize
|
||||
;; them away.
|
||||
;; FIXME: `pcase' does not do a good job here of sharing tests&code among
|
||||
;; various branches.
|
||||
`(and (pred eieio-object-p)
|
||||
,@(mapcar (lambda (field)
|
||||
(pcase-exhaustive field
|
||||
(`(,name ,pat)
|
||||
`(app (pcase--flip eieio-oref ',name) ,pat))
|
||||
`(app (pcase--flip eieio-oref ',name) ,pat))
|
||||
((pred symbolp)
|
||||
`(app (pcase--flip eieio-oref ',field) ,field))))
|
||||
fields))))
|
||||
field-s)))
|
||||
|
||||
;;; Simple generators, and query functions. None of these would do
|
||||
;; well embedded into an object.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue