Compiler implementation of the D programming language.
If possible, convert array initializer to associative array initializer.
| ArrayInitializer ai | array initializer to be converted | 
ai is not an associative array initializer.Perform semantic analysis on init.
| Initializer init | Initializer AST node | 
| Scope* sc | context | 
| Type t | type that the initializer needs to become | 
| NeedInterpret needInterpret | if CTFE needs to be run on this, such as if it is the initializer for a const declaration | 
Initializer with completed semantic analysis, ErrorInitializer if errors were encounteredTranslate init to an Expression in order to infer the type. 
| Initializer init | InitializerAST node | 
| Scope* sc | context | 
ExpInitializer if successful, or ErrorInitializer if it cannot be translatedTranslate init to an Expression. 
| Initializer init | InitializerAST node | 
| Type itype | if not null, type to coerce expression to | 
Expression created, null if cannot, ErrorExp for other errors
    © 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
    https://dlang.org/phobos/dmd_initsem.html