The type model represents the type information defined by the language specification.
There are four classes of types, all of which are a subtype of the abstract class DartType
.
There are two ways to get an instance of DartType
: from the AST and from the element model.
In a resolved AST, every expression has a non-null
staticType
.
Every element also has type information associated with it. Elements that define a type, such as a ClassElement
, can return the type that they define. Elements that represent a function can return the returnType
of the function as well as the functionType
of the function. Elements that represent a variable (which includes fields and parameters) can return the explicitly or implicitly declared type of the variable.