Function: eieio-build-class-alist

eieio-build-class-alist is a byte-compiled function defined in eieio-opt.el.gz.

Signature

(eieio-build-class-alist &optional CLASS INSTANTIABLE-ONLY BUILDLIST)

Documentation

Return an alist of all currently active classes for completion purposes.

Optional argument CLASS is the class to start with. If INSTANTIABLE-ONLY is non-nil, only allow names of classes which are not abstract, otherwise allow all classes. Optional argument BUILDLIST is more list to attach and is used internally.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/eieio-opt.el.gz
(defun eieio-build-class-alist (&optional class instantiable-only buildlist)
  "Return an alist of all currently active classes for completion purposes.
Optional argument CLASS is the class to start with.
If INSTANTIABLE-ONLY is non-nil, only allow names of classes which
are not abstract, otherwise allow all classes.
Optional argument BUILDLIST is more list to attach and is used internally."
  (let* ((cc (or class 'eieio-default-superclass))
	 (sublst (eieio--class-children (cl--find-class cc))))
    (unless (assoc (symbol-name cc) buildlist)
      (when (or (not instantiable-only) (not (class-abstract-p cc)))
        ;; FIXME: Completion tables don't need alists, and ede/generic.el needs
        ;; the symbols rather than their names.
	(setq buildlist (cons (cons (symbol-name cc) 1) buildlist))))
    (dolist (elem sublst)
      (setq buildlist (eieio-build-class-alist
		       elem instantiable-only buildlist)))
    buildlist))