diff options
| author | Stefan Monnier | 2024-03-03 18:08:50 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2024-03-03 18:08:50 -0500 |
| commit | 1d9d07fb00e6b62641c07af68f986e700b5f6cee (patch) | |
| tree | f5d6c604acb02e88d6c8c7dbef50bdcd5fde0b47 /src/buffer.c | |
| parent | 99483e214fdafa76e8001c7009dff13a76c33f32 (diff) | |
| download | emacs-1d9d07fb00e6b62641c07af68f986e700b5f6cee.tar.gz emacs-1d9d07fb00e6b62641c07af68f986e700b5f6cee.zip | |
(cl--typeof-types): Rework to fix some regressions
Initialize the variables directly in their declaration, so
there no time where they exist but aren't yet initialized.
This also allows us to mark `cl--typeof-types` as a `defconst` again.
More importantly, specify the DAG by direct supertypes rather
than direct subtypes. This is slightly less compact, but it's
necessary to let us specify the *order* of the supertypes,
which is necessary for example to preserve the desired ordering
of methods when several methods can be applied.
Fix a few more regressions, such as removing `atom` from the parents
of `function` since some lists are considered as functions,
adding `number-or-marker` as supertype of `integer-or-marker`,
and re-adding `native-comp-unit`.
I carefully compared all elements of `cl--typeof-types` to make
sure they are the same as before (with one exception for `null`).
* lisp/emacs-lisp/cl-preloaded.el (cl--type-hierarchy): Delete var.
(cl--direct-supertypes-of-type, cl--typeof-types):
Initialize directly in the declaration.
(cl--supertypes-lane, cl--supertypes-lanes-res): Delete vars.
(cl--supertypes-for-typeof-types-rec)
(cl--supertypes-for-typeof-types): Delete functions.
Diffstat (limited to 'src/buffer.c')
0 files changed, 0 insertions, 0 deletions