Compiler implementation of the D programming language.
We've mistakenly parsed t as a type. Redo t as an Expression. 
| Type t | mistaken type | 
Perform semantic analysis on a type.
| Type t | Type AST node | 
| Loc loc | the location of the type | 
| Scope* sc | context | 
Type with completed semantic analysis, Terror if errors were encounteredCompile the MixinType, returning the type AST.
Doesn't run semantic() on the returned type.
| TypeMixin tm | mixin to compile as a type | 
| Loc loc | location for error messages | 
| Scope* sc | context | 
If an identical type to type is in type.stringtable, return the latter one. Otherwise, add it to type.stringtable. Some types don't get merged and are returned as-is. 
| Type type | Type to check against existing types | 
Calculate built-in properties which just the type is necessary.
| Type t | the type for which the property is calculated | 
| Loc loc | the location where the property is encountered | 
| Identifier ident | the identifier of the property | 
| int flag | if flag & 1, don't report "not a property" error and just return NULL. | 
Resolve type 'mt' to either type, symbol, or expression. If errors happened, resolved to Type.terror.
| Type mt | type to be resolved | 
| Loc loc | the location where the type is encountered | 
| Scope* sc | the scope of the type | 
| Expression* pe | is set if t is an expression | 
| Type* pt | is set if t is a type | 
| Dsymbol* ps | is set if t is a symbol | 
| bool intypeid | true if in type id | 
Access the members of the object e. This type is same as e.type.
| Type mt | type for which the dot expression is used | 
| Scope* sc | instantiating scope | 
| Expression e | expression to convert | 
| Identifier ident | identifier being used | 
| int flag | DotExpFlag bit flags | 
Get the the default initialization expression for a type.
| Type mt | the type for which the init expression is returned | 
| Loc loc | the location where the expression needs to be evaluated | 
    © 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
    https://dlang.org/phobos/dmd_typesem.html