File: eieio-compat.el.html

Backward compatibility definition of old EIEIO functions in terms of newer equivalent.

The main elements are the old EIEIO defmethod and defgeneric which are now implemented on top of cl-generic. The differences we have to accommodate are:
- EIEIO's :static methods (turned into a new eieio--static specializer).
- EIEIO's support for call-next-method and next-method-p instead of
  cl-next-method-p and cl-call-next-method (simple matter of renaming).
- Different errors are signaled.
- EIEIO's defgeneric does not reset the function.
- EIEIO's no-next-method and no-applicable-method can't be aliases of
  cl-generic's namesakes since they have different calling conventions,
  which means that packages that (defmethod no-next-method ..) don't work.
- EIEIO's call-next-method and next-method-p had dynamic scope whereas
  cl-generic's cl-next-method-p and cl-call-next-method are lexically
  scoped.

Defined variables (0)

Defined functions (13)

call-next-method(&rest ARGS)
defgeneric(METHOD ARGS &optional DOC-STRING)
defmethod(METHOD &rest ARGS)
eieio--defalias(NAME BODY)
eieio--defgeneric-init-form(METHOD DOC-STRING)
eieio--defmethod(METHOD KIND ARGCLASS CODE)
eieio--generic-static-symbol-specializers(TAG &rest _)
eieio-defclass(CNAME SUPERCLASSES SLOTS OPTIONS)
eieio-defgeneric(METHOD DOC-STRING)
eieio-defmethod(METHOD ARGS)
generic-p(FNAME)
no-applicable-method(OBJECT METHOD &rest ARGS)
no-next-method(&rest ARGS)

Defined faces (0)