emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 5de3427: * lisp/emacs-lisp/eieio-core.el (eieio--cl


From: Stefan Monnier
Subject: [Emacs-diffs] master 5de3427: * lisp/emacs-lisp/eieio-core.el (eieio--class): Derive from cl--class
Date: Wed, 15 Apr 2015 03:04:50 +0000

branch: master
commit 5de3427203ac1fc0badd01a447c65cf45ecf1403
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    * 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 files changed, 1 insertions(+), 20 deletions(-)

diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index 272bb07..59d8348 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?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]