diff options
| author | Stefan Monnier | 2014-12-29 12:11:09 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2014-12-29 12:11:09 -0500 |
| commit | 232823a1f163cebeafdab20ea2eb3f2da9645185 (patch) | |
| tree | 59df22737fb162918c05c533ee9b19548a6b21b3 /test | |
| parent | ee93d7ad4291a0946efe3197481cfbeff92f29b8 (diff) | |
| download | emacs-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/ChangeLog | 13 | ||||
| -rw-r--r-- | test/automated/eieio-test-methodinvoke.el | 6 |
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 @@ | |||
| 1 | 2014-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 | |||
| 7 | 2014-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 | |||
| 1 | 2014-12-22 Stefan Monnier <monnier@iro.umontreal.ca> | 14 | 2014-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'.") |