From 5de3427203ac1fc0badd01a447c65cf45ecf1403 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 14 Apr 2015 23:04:45 -0400 Subject: [PATCH] * lisp/emacs-lisp/eieio-core.el (eieio--class): Derive from cl--class (eieio--class-p): Remove, provided by cl-defstruct. --- lisp/emacs-lisp/eieio-core.el | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index 272bb0768af..59d834837b0 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el @@ -89,21 +89,8 @@ Currently under control of this var: (cl-defstruct (eieio--class (:constructor nil) (:constructor eieio--class-make (name &aux (tag 'defclass))) - (:type vector) + (:include cl--class) (:copier nil)) - ;; We use an untagged cl-struct, with our own hand-made tag as first field - ;; (containing the symbol `defclass'). It would be better to use a normal - ;; cl-struct with its normal tag (e.g. so that cl-defstruct can define the - ;; predicate for us), but that breaks compatibility with .elc files compiled - ;; against older versions of EIEIO. - tag - ;; Fields we could inherit from cl--class (if we used a tagged cl-struct): - (name nil :type symbol) ;The type name. - (docstring nil :type string) - (parents nil :type (or eieio--class (list-of eieio--class))) - (slots nil :type (vector cl-slot-descriptor)) - (index-table nil :type hash-table) - ;; Fields specific to EIEIO classes: children initarg-tuples ;; initarg tuples list (class-slots nil :type eieio--slot) @@ -152,12 +139,6 @@ Currently under control of this var: (or (eieio--class-v class) class) class)) -(defsubst eieio--class-p (class) - "Return non-nil if CLASS is a valid class object." - (condition-case nil - (eq (aref class 0) 'defclass) - (error nil))) - (defun class-p (class) "Return non-nil if CLASS is a valid class vector. CLASS is a symbol." ;FIXME: Is it a vector or a symbol? -- 2.39.5