Function: semantic-analyze-scoped-inherited-tags

semantic-analyze-scoped-inherited-tags is a byte-compiled function defined in scope.el.gz.

Signature

(semantic-analyze-scoped-inherited-tags TYPE SCOPE ACCESS)

Documentation

Return all tags that TYPE inherits from.

Argument SCOPE specify additional tags that are in scope whose tags can be searched when needed, OR it may be a scope object. ACCESS is the level of access we filter on child supplied tags. For languages with protection on specific methods or slots, it should strip out those not accessible by methods of TYPE. An ACCESS of public means not in a method of a subclass of type. A value of private means we can access private parts of the originating type.

Source Code

;; Defined in /usr/src/emacs/lisp/cedet/semantic/scope.el.gz
(defun semantic-analyze-scoped-inherited-tags (type scope access)
  "Return all tags that TYPE inherits from.
Argument SCOPE specify additional tags that are in scope
whose tags can be searched when needed, OR it may be a scope object.
ACCESS is the level of access we filter on child supplied tags.
For languages with protection on specific methods or slots,
it should strip out those not accessible by methods of TYPE.
An ACCESS of `public' means not in a method of a subclass of type.
A value of `private' means we can access private parts of the originating
type."
  (let ((ret nil))
    (semantic-analyze-scoped-inherited-tag-map
     type (lambda (p)
	    (let* ((pname (semantic-tag-name p))
		   (protection (semantic-tag-type-superclass-protection
				type pname))
		   )
	      (if (and (eq access 'public) (not (eq protection 'public)))
		  nil ;; Don't do it.

		;; We can get some parts of this type.
		(setq ret (nconc ret
				 ;; Do not pull in inherited parts here.  Those
				 ;; will come via the inherited-tag-map fcn
				 (semantic-analyze-scoped-type-parts
				  p scope t protection))
		      ))))
     scope)
    ret))