Function: ebrowse-base-classes

ebrowse-base-classes is a byte-compiled function defined in ebrowse.el.gz.

Signature

(ebrowse-base-classes TREE)

Documentation

Return list of base-classes of TREE by searching subclass lists.

This function must be used instead of the struct slot base-classes to access the base-class list directly because it computes this information lazily.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/ebrowse.el.gz
(defun ebrowse-base-classes (tree)
  "Return list of base-classes of TREE by searching subclass lists.
This function must be used instead of the struct slot
`base-classes' to access the base-class list directly because it
computes this information lazily."
  (or (ebrowse-ts-base-classes tree)
      (setf (ebrowse-ts-base-classes tree)
	    (cl-loop with to-search = (list tree)
                     with result = nil
                     as search = (pop to-search)
                     while search finally return result
                     do (ebrowse-for-all-trees (ti ebrowse--tree-table)
                          (when (memq search (ebrowse-ts-subclasses ti))
                            (unless (memq ti result)
                              (setq result (nconc result (list ti))))
                            (push ti to-search)))))))