aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorStefan Monnier2014-12-29 12:11:09 -0500
committerStefan Monnier2014-12-29 12:11:09 -0500
commit232823a1f163cebeafdab20ea2eb3f2da9645185 (patch)
tree59df22737fb162918c05c533ee9b19548a6b21b3 /test
parentee93d7ad4291a0946efe3197481cfbeff92f29b8 (diff)
downloademacs-232823a1f163cebeafdab20ea2eb3f2da9645185.tar.gz
emacs-232823a1f163cebeafdab20ea2eb3f2da9645185.zip
lisp/emacs-lisp/eieio*.el: Reduce object header to 1 slot
* lisp/emacs-lisp/eieio-core.el (eieio--with-scoped-class): Use let-binding. (object): Remove first (constant) slot; rename second to `class-tag'. (eieio--object-class-object, eieio--object-class-name): New funs to replace eieio--object-class. (eieio--class-object, eieio--class-p): New functions. (same-class-fast-p): Make it a defsubst, change its implementation to check the class objects rather than their names. (eieio-object-p): Rewrite. (eieio-defclass): Adjust the object initialization according to the new object layout. (eieio--scoped-class): Declare it returns a class object (not a class name any more). Adjust calls accordingly (along with calls to eieio--with-scoped-class). (eieio--slot-name-index): Rename from eieio-slot-name-index and change its class arg to be a class object. Adjust callers accordingly. (eieio-slot-originating-class-p): Make its start-class arg a class object. Adjust all callers. (eieio--initarg-to-attribute): Rename from eieio-initarg-to-attribute. Make its `class' arg a class object. Adjust all callers. * lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value): Use eieio--slot-name-index rather than eieio-slot-name-index. * lisp/emacs-lisp/eieio.el (child-of-class-p): Make it accept class objects additionally to class names. * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store): Adjust to new semantics of eieio--scoped-class. (eieio-test-match): Improve error feedback.
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog13
-rw-r--r--test/automated/eieio-test-methodinvoke.el6
2 files changed, 17 insertions, 2 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index bcc619a7f97..53e2c49c9d7 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,16 @@
12014-12-29 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * automated/eieio-test-methodinvoke.el (eieio-test-method-store):
4 Adjust to new semantics of eieio--scoped-class.
5 (eieio-test-match): Improve error feedback.
6
72014-12-23 Stefan Monnier <monnier@iro.umontreal.ca>
8
9 * automated/eieio-tests.el: Remove dummy object names.
10
11 * automated/eieio-test-persist.el (persistent-with-objs-slot-subs):
12 The type FOO-child is the same as FOO.
13
12014-12-22 Stefan Monnier <monnier@iro.umontreal.ca> 142014-12-22 Stefan Monnier <monnier@iro.umontreal.ca>
2 15
3 * automated/eieio-test-methodinvoke.el (eieio-test-method-store): 16 * automated/eieio-test-methodinvoke.el (eieio-test-method-store):
diff --git a/test/automated/eieio-test-methodinvoke.el b/test/automated/eieio-test-methodinvoke.el
index 3f86d8fcc99..f99ee8d1f46 100644
--- a/test/automated/eieio-test-methodinvoke.el
+++ b/test/automated/eieio-test-methodinvoke.el
@@ -61,14 +61,16 @@
61 "Store current invocation class symbol in the invocation order list." 61 "Store current invocation class symbol in the invocation order list."
62 (let* ((keysym (aref [ :STATIC :BEFORE :PRIMARY :AFTER ] 62 (let* ((keysym (aref [ :STATIC :BEFORE :PRIMARY :AFTER ]
63 (or eieio-generic-call-key 0))) 63 (or eieio-generic-call-key 0)))
64 (c (list keysym (eieio--scoped-class)))) 64 ;; FIXME: Don't depend on `eieio--scoped-class'!
65 (c (list keysym (eieio--class-symbol (eieio--scoped-class)))))
65 (push c eieio-test-method-order-list))) 66 (push c eieio-test-method-order-list)))
66 67
67(defun eieio-test-match (rightanswer) 68(defun eieio-test-match (rightanswer)
68 "Do a test match." 69 "Do a test match."
69 (if (equal rightanswer eieio-test-method-order-list) 70 (if (equal rightanswer eieio-test-method-order-list)
70 t 71 t
71 (error "eieio-test-methodinvoke.el: Test Failed!"))) 72 (error "eieio-test-methodinvoke.el: Test Failed: %S != %S"
73 rightanswer eieio-test-method-order-list)))
72 74
73(defvar eieio-test-call-next-method-arguments nil 75(defvar eieio-test-call-next-method-arguments nil
74 "List of passed to methods during execution of `call-next-method'.") 76 "List of passed to methods during execution of `call-next-method'.")