Function: semantic-analyze-dereference-metatype
semantic-analyze-dereference-metatype is a byte-compiled function
defined in fcn.el.gz.
Signature
(semantic-analyze-dereference-metatype TYPE SCOPE &optional TYPE-DECLARATION)
Documentation
Return a concrete type tag based on input TYPE tag.
A concrete type is an actual declaration of a memory description, such as a structure, or class. A meta type is an alias, or a typedef in C or C++. If TYPE is concrete, it is returned. If it is a meta type, it will return the concrete type defined by TYPE. The default behavior always returns TYPE. Override functions need not return a real semantic tag. Just a name, or short tag will be ok. It will be expanded here. SCOPE is the scope object with additional items in which to search for names.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/analyze/fcn.el.gz
;;; Finding Datatypes
;;
(define-overloadable-function semantic-analyze-dereference-metatype (type scope &optional type-declaration)
;; todo - move into typecache!!
"Return a concrete type tag based on input TYPE tag.
A concrete type is an actual declaration of a memory description,
such as a structure, or class. A meta type is an alias,
or a typedef in C or C++. If TYPE is concrete, it
is returned. If it is a meta type, it will return the concrete
type defined by TYPE.
The default behavior always returns TYPE.
Override functions need not return a real semantic tag.
Just a name, or short tag will be ok. It will be expanded here.
SCOPE is the scope object with additional items in which to search for names."
(catch 'default-behavior
(let* ((ans-tuple (:override
;; Nothing fancy, just return type by default.
(throw 'default-behavior (list type type-declaration))))
(ans-type (car ans-tuple))
(ans-type-declaration (cadr ans-tuple)))
(list (semantic-analyze-dereference-metatype-1 ans-type scope) ans-type-declaration))))