typeOf

open override fun typeOf(type: IASTTypeId): Type

Returns the Type that is represented by an IASTTypeId.


fun typeOf(declarator: IASTDeclarator, specifier: IASTDeclSpecifier, hint: Declaration? = null): Type

Returns te Type that is represented by the declarator and specifier. This tries to resolve as much information about the type on its own using by analyzing the AST of the supplied declarator and specifier. Finally, TypeParser.createFrom is invoked on the innermost type, but all other type adjustments, such as creating a PointerType is done within this method.

Optionally, a hint in the form of an existing Declaration can be provided. The idea behind this, is that in some scenarios we create the Declaration before the type and in some, we derive the declaration from the type. In the first one, we might get some necessary information from the declaration, that influences the type parsing. One such example is that we check, whether a declaration is a ConstructorDeclaration and return an ObjectType that corresponds with the record name it instantiates.

Parameters

hint

an optional Declaration, which serves as a parsing hint.


fun typeOf(specifier: IASTDeclSpecifier, hint: Declaration? = null): Type
fun typeOf(name: IASTName, prefix: String? = null, doFqn: Boolean = false): Type