• Stefan Monnier's avatar
    * lisp/emacs-lisp/eieio*.el: Use hashtables rather than obarrays · bcebc831
    Stefan Monnier authored
    * lisp/emacs-lisp/eieio-core.el (class): Rename field symbol-obarray to
    symbol-hashtable.  It contains a hashtable instead of an obarray.
    (generic-p): Use symbol property `eieio-method-hashtable' instead of
    `eieio-method-obarray'.
    (generic-primary-only-p, generic-primary-only-one-p):
    Slight optimization.
    (eieio-defclass-autoload-map): Use a hashtable instead of an obarray.
    (eieio-defclass-autoload, eieio-defclass): Adjust/simplify accordingly.
    (eieio-class-un-autoload): Use autoload-do-load.
    (eieio-defclass): Use dolist, cl-pushnew, cl-callf.
    Use new cl-deftype-satisfies.  Adjust to use of hashtables.
    Don't hardcode the value of eieio--object-num-slots.
    (eieio-defgeneric-form-primary-only-one): Remove `doc-string' arg.
    Use a closure rather than a backquoted lambda.
    (eieio--defmethod): Adjust call accordingly.  Set doc-string via the
    function-documentation property.
    (eieio-slot-originating-class-p, eieio-slot-name-index)
    (eieiomt--optimizing-hashtable, eieiomt-install, eieiomt-add)
    (eieio-generic-form): Adjust to use of hashtables.
    (eieiomt--sym-optimize): Rename from eieiomt-sym-optimize; take
    additional class argument.
    (eieio-generic-call-methodname): Remove, unused.
    
    * lisp/emacs-lisp/eieio-custom.el: Use lexical-binding.
    (eieio-object-value-to-abstract): Simplify.
    
    * lisp/emacs-lisp/eieio-datadebug.el: Use lexical-binding.
    
    * lisp/emacs-lisp/eieio-opt.el (eieio-build-class-list): Use cl-mapcan.
    (eieio-build-class-alist): Use dolist.
    (eieio-all-generic-functions): Adjust to use of hashtables.
    
    * lisp/emacs-lisp/eieio.el (child-of-class-p): Fix case where `class' is
    `eieio-default-superclass'.
    
    * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
    Remove use of eieio-generic-call-methodname.
    (eieio-test-method-order-list-3, eieio-test-method-order-list-6)
    (eieio-test-method-order-list-7, eieio-test-method-order-list-8):
    Adjust the expected result accordingly.
    
    * lisp/emacs-lisp/eieio-base.el (eieio-persistent-slot-type-is-class-p):
    Prefer \' to $.
    bcebc831
eieio-datadebug.el 4.84 KB