Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.
Compiler implementation of the D programming language.
- Perform semantic analysis on a type.Parameters:
Type AST node Loc
the location of the type Scope*
contextReturns:Type with completed semantic analysis, Terror if errors were encountered
- If an identical type to
type.stringtable, return the latter one. Otherwise, add it to
type.stringtable. Some types don't get merged and are returned as-is.Parameters:
Type to check against existing typesReturns:the type that was merged
t, ref const Loc
- Calculate built-in properties which just the type is necessary.Parameters:
the type for which the property is calculated Loc
the location where the property is encountered Identifier
the identifier of the property int
if flag & 1, don't report "not a property" error and just return NULL.
mt, ref const Loc
- Resolve type 'mt' to either type, symbol, or expression. If errors happened, resolved to Type.terror.Parameters:
type to be resolved Loc
the location where the type is encountered Scope*
the scope of the type Expression*
is set if t is an expression Type*
is set if t is a type Dsymbol*
is set if t is a symbol bool
true if in type id
- Access the members of the object e. This type is same as e.type.Parameters:
type for which the dot expression is used Scope*
instantiating scope Expression
expression to convert Identifier
identifier being used int
DotExpFlag bit flagsReturns:resulting expression with e.ident resolved
mt, ref const Loc
- Get the the default initialization expression for a type.Parameters:
the type for which the init expression is returned Loc
the location where the expression needs to be evaluatedReturns:The initialization expression for the type.