• Stefan Monnier's avatar
    * lisp/emacs-lisp/eieio*.el: Remove "name" field of objects · ee93d7ad
    Stefan Monnier authored
    * lisp/emacs-lisp/eieio-base.el (clone) <eieio-instance-inheritor>:
    Use call-next-method.
    (eieio-constructor): Rename from `constructor'.
    (eieio-persistent-convert-list-to-object): Drop objname.
    (eieio-persistent-validate/fix-slot-value): Don't hardcode
    eieio--object-num-slots.
    (eieio-named): Use a normal slot.
    (slot-missing) <eieio-named>: Remove.
    (eieio-object-name-string, eieio-object-set-name-string, clone)
    <eieio-named>: New methods.
    
    * lisp/emacs-lisp/eieio-core.el (eieio--defalias): Follow aliases.
    (eieio--object): Remove `name' field.
    (eieio-defclass): Adjust to new convention where constructors don't
    take an "object name" any more.
    (eieio--defgeneric-init-form, eieio--defmethod): Follow aliases.
    (eieio-validate-slot-value, eieio-oset-default)
    (eieio-slot-name-index): Don't hardcode eieio--object-num-slots.
    (eieio-generic-call-primary-only): Simplify.
    
    * lisp/emacs-lisp/eieio-custom.el (eieio-widget-test): Remove dummy arg.
    (eieio-object-value-get): Use eieio-object-set-name-string.
    
    * lisp/emacs-lisp/eieio.el (make-instance): Simplify by not adding an object
    name argument.
    (eieio-object-name): Use eieio-object-name-string.
    (eieio--object-names): New const.
    (eieio-object-name-string, eieio-object-set-name-string): Re-implement
    using a hashtable rather than a built-in slot.
    (eieio-constructor): Rename from `constructor'.  Remove `newname' arg.
    (clone): Don't mess with the object's "name".
    
    * test/automated/eieio-test-persist.el (persistent-with-objs-slot-subs):
    The type FOO-child is the same as FOO.
    
    * test/automated/eieio-tests.el: Remove dummy object names.
    ee93d7ad
eieio-test-methodinvoke.el 10.6 KB