diff options
| author | Stefan Monnier | 2023-10-30 00:59:19 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2023-10-30 00:59:19 -0400 |
| commit | bdec2d2d464919572ae948ba8150e014aa649191 (patch) | |
| tree | 7cc0cfa5c7142b08707b9a8cc01bb401e356dfc8 /java | |
| parent | 271d8b70f8d772807484454d3369f515fdff350a (diff) | |
| download | emacs-bdec2d2d464919572ae948ba8150e014aa649191.tar.gz emacs-bdec2d2d464919572ae948ba8150e014aa649191.zip | |
comp-cstr.el: The type hierarchy is a DAG, not a tree
Adjust the type operations to account for the fact that types can have
several parents.
* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy):
Use `cl--class-allparents`. Add FIXME.
(comp--direct-supertype): Declare obsolete.
(comp--direct-supertypes): New function.
(comp--normalize-typeset0): Rewrite to use `comp--direct-supertypes`;
adjust to account for the DAG structure; use `cl-set-difference`.
(comp--direct-subtypes): Rewrite.
(comp--intersection): New function.
(comp-supertypes): Rewrite and change return type.
(comp-subtype-p): Simplify.
(comp-union-typesets): Use `comp-supertypes` instead of iterating over
`comp-cstr-ctxt-typeof-types`.
* lisp/emacs-lisp/comp.el (comp--native-compile): Don't catch
errors if we're debugging.
* test/lisp/emacs-lisp/comp-cstr-tests.el: Adjust tests.
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix mishap when we
evaluate (cl-defstruct cl-structure-object ..) during the compilation
of `cl-preloaded.el`.
* lisp/emacs-lisp/cl-preloaded.el: Add corresponding assertion.
Diffstat (limited to 'java')
0 files changed, 0 insertions, 0 deletions