Type reification is used to create instances of haxe.macro.Expr.ComplexType
in a convenient way. It is identified by a macro : Type
, where Type
can be any valid type path expression. This is similar to explicit type hints in normal code, e.g. for variables in the form of var x:Type
.
Each constructor of ComplexType
has a distinct syntax:
TPath
: macro : pack.Type
TFunction
: macro : Arg1 -> Arg2 -> Return
TAnonymous
: macro : { field: Type }
TParent
: macro : (Type)
TExtend
: macro : {> Type, field: Type }
TOptional
: macro : ?Type