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