diff options
| author | David Ponce | 2025-05-05 11:03:56 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2025-05-05 11:03:56 -0400 |
| commit | 8f649c42702144dbbacba180c78ab0df04951807 (patch) | |
| tree | 409ee81ba54dbc564c558085ee4de82b78b31e57 /lib/diffseq.h | |
| parent | 4323ff209f2f73ca4e6d389de69eb310988c0b1f (diff) | |
| download | emacs-8f649c42702144dbbacba180c78ab0df04951807.tar.gz emacs-8f649c42702144dbbacba180c78ab0df04951807.zip | |
cl-types.el: Speed up deftype and dispatch
* lisp/emacs-lisp/cl-types.el (cl--type-list): Doc string.
(cl--type-dispatch-list): New variable.
(cl--type-parents): Make it a plain defun.
(cl--type-children, cl--type-dag): Remove.
(cl--type-undefine): Remove duplicate test for `cl--type-p'. Use
`cl--class-children'. Clear `cl--type-flag' instead of
`cl--type-error'. Also remove type from the dispatch list.
(cl--type-deftype): Doc string. Remove useless safeguard of
data on error. Fix some error messages. Clear `cl--type-flag'
when a type is (re)defined. Just push new types on
`cl--type-list'.
(cl--type-error): Set `cl--type-flag' to the symbol `error' and
remove type in error from the dispatch list.
(cl-types-of): Doc string. Remove useless check for
`cl-type-class-p'. Skip types which we are sure will not match.
Simplify creation of the DAG.
(cl--type-generalizer): In the tagcode-function, check only types
that can be dispatched.
(cl-generic-generalizers): Populate the dispatch list.
Diffstat (limited to 'lib/diffseq.h')
0 files changed, 0 insertions, 0 deletions