dmd.typesem

Semantic analysis for D types.

Members

Functions

defaultInit
Expression defaultInit(Type mt, Loc loc, bool isCfile)

Get the default initialization expression for a type.

dotExp
Expression dotExp(Type mt, Scope* sc, Expression e, Identifier ident, DotExpFlag flag)

Access the members of the object e. This type is same as e.type.

getComplexLibraryType
Type getComplexLibraryType(Loc loc, Scope* sc, TY ty)

Extract complex type from core.stdc.config

getProperty
Expression getProperty(Type t, Scope* scope_, Loc loc, Identifier ident, int flag, Expression src)

Calculate built-in properties which just the type is necessary.

merge
Type merge(Type type)

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.

resolve
void resolve(Type mt, Loc loc, Scope* sc, Expression pe, Type pt, Dsymbol ps, bool intypeid)

Resolve type 'mt' to either type, symbol, or expression. If errors happened, resolved to Type.terror.

typeSemantic
Type typeSemantic(Type type, Loc loc, Scope* sc)

Perform semantic analysis on a type.

typeToExpression
Expression typeToExpression(Type t)

We've mistakenly parsed t as a type. Redo t as an Expression only if there are no type modifiers.

Meta