Dynamic array, no dimension
Similar to TypeIdentifier, but with a TemplateInstance as the root
Implements mixin types.
Static array, one with a fixed dimension
This is so we can slice a TypeTuple
This is a shell containing a TraitsExp that can be either resolved to a type or to a symbol.
The basetype must be one of: byte[16],ubyte[16],short[8],ushort[8],int[4],uint[4],long[2],ulong[2],float[4],double[2] For AVX: byte[32],ubyte[32],short[16],ushort[16],int[8],uint[8],long[4],ulong[4],float[8],double[4]
dotExp() bit flags
Variadic argument lists https://dlang.org/spec/function.html#variadic
Return !=0 if modfrom can be implicitly converted to modto
Merge mod bits to form common mod.
Return MATCH.exact or MATCH.constant if a method of type '() modfrom' can call a method of type '() modto'.
Store modifier name into buf.
Convert MODxxxx to STCxxx
For each active attribute (ref/const/nogc/etc) call fp with a void* for the work param and a string representation of the attribute.
If the type is a class or struct, returns the symbol for it, else null.
Determine if type t is copyable.
Determine if type t can be indexed or sliced given that it is not an aggregate with operator overloads.
Returns true if ty is char, wchar, or dchar
For each active modifier (MODFlags.const_, MODFlags.immutable_, etc) call fp with a void* for the work param and a string representation of the attribute.
For printing two types with qualification when necessary.
Encapsulate Parameters* so .length and i can be used on it. https://dlang.org/spec/function.html#ParameterList
Defines a D type.