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))