dmd.expressionsem

Semantic analysis of expressions.

Specification: ($LINK2 https://dlang.org/spec/expression.html, Expressions)

Members

Functions

arrayExpressionSemantic
bool arrayExpressionSemantic(Expressions* exps, Scope* sc, bool preserveErrors)

Perform semantic() on an array of Expressions.

binSemantic
Expression binSemantic(BinExp e, Scope* sc)

Helper function for easy error propagation. If error occurs, returns ErrorExp. Otherwise returns NULL.

binSemanticProp
Expression binSemanticProp(BinExp e, Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
checkAddressVar
bool checkAddressVar(Scope* sc, Expression exp, VarDeclaration v)

Determine if exp, which gets its address taken, can do so safely.

checkSharedAccess
bool checkSharedAccess(Expression e, Scope* sc, bool returnRef)

If expression is shared, check that we can access it. Give error message if not.

expressionSemantic
Expression expressionSemantic(Expression e, Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
expressionsToString
bool expressionsToString(OutBuffer buf, Scope* sc, Expressions* exps)

Perform semantic analysis and CTFE on expressions to produce a string.

getThisSkipNestedFuncs
Expression getThisSkipNestedFuncs(Loc loc, Scope* sc, Dsymbol s, AggregateDeclaration ad, Expression e1, Type t, Dsymbol var, bool flag)

Helper function for getRightThis(). Gets this of the next outer aggregate.

makeThis2Argument
VarDeclaration makeThis2Argument(Loc loc, Scope* sc, FuncDeclaration fd)

Make a dual-context container for use as a this argument.

resolveIsPackage
Package resolveIsPackage(Dsymbol sym)

Determines whether a symbol represents a module or package (Used as a helper for is(type == module) and is(type == package))

resolveOpDollar
Expression resolveOpDollar(Scope* sc, ArrayExp ae, Expression* pe0)

Runs semantic on ae.arguments. Declares temporary variables if '$' was used.

resolveOpDollar
Expression resolveOpDollar(Scope* sc, ArrayExp ae, IntervalExp ie, Expression* pe0)

Runs semantic on se.lwr and se.upr. Declares a temporary variable if '$' was used.

resolveProperties
Expression resolveProperties(Scope* sc, Expression e)
Undocumented in source. Be warned that the author may not have intended to support it.
resolvePropertiesOnly
Expression resolvePropertiesOnly(Scope* sc, Expression e1)

If e1 is a property function (template), resolve it.

semanticString
StringExp semanticString(Scope* sc, Expression exp, char* s)

Resolve exp as a compile-time known string.

semanticX
Expression semanticX(DotIdExp exp, Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
semanticY
Expression semanticY(DotIdExp exp, Scope* sc, int flag)
Undocumented in source. Be warned that the author may not have intended to support it.
semanticY
Expression semanticY(DotTemplateInstanceExp exp, Scope* sc, int flag)
Undocumented in source. Be warned that the author may not have intended to support it.
symbolToExp
Expression symbolToExp(Dsymbol s, Loc loc, Scope* sc, bool hasOverloads)

Turn symbol s into the expression it represents.

trySemantic
Expression trySemantic(Expression exp, Scope* sc)

Try to run semantic routines. If they fail, return NULL.

unaSemantic
Expression unaSemantic(UnaExp e, Scope* sc)

Helper function for easy error propagation. If error occurs, returns ErrorExp. Otherwise returns NULL.

verifyHookExist
bool verifyHookExist(Loc loc, Scope sc, Identifier id, string description, Identifier module_)

Make sure that the runtime hook id exists.

Manifest constants

LOGSEMANTIC
enum LOGSEMANTIC;
Undocumented in source.

Meta