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.

dmd.expressionsem

Compiler implementation of the D programming language.
Authors:
StringExp semanticString(Scope* sc, Expression exp, const char* s);
Resolve exp as a compile-time known string.
Parameters:
Scope* sc scope
Expression exp Expression which expected as a string
char* s What the string is expected for, will be used in error diagnostic.
Returns:
String literal, or null if error happens.
Expression resolveOpDollar(Scope* sc, ArrayExp ae, Expression* pe0);
Runs semantic on ae.arguments. Declares temporary variables if '$' was used.
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.
bool arrayExpressionSemantic(Expressions* exps, Scope* sc, bool preserveErrors = false);
Perform semantic() on an array of Expressions.
Expression resolvePropertiesOnly(Scope* sc, Expression e1);
If e1 is a property function (template), resolve it.
Expression resolve(ref const Loc loc, Scope* sc, Dsymbol s, bool hasOverloads);
Resolve a symbol s and wraps it in an expression object.
Parameters:
Loc loc location of use of s
Scope* sc context
Dsymbol s symbol to resolve
bool hasOverloads applies if s represents a function. true means it's overloaded and will be resolved later, false means it's the exact function symbol.
Returns:
s turned into an expression, ErrorExp if an error occurred
Expression trySemantic(Expression exp, Scope* sc);
Try to run semantic routines. If they fail, return NULL.
Expression unaSemantic(UnaExp e, Scope* sc);
Helper function for easy error propagation. If error occurs, returns ErrorExp. Otherwise returns NULL.
Expression binSemantic(BinExp e, Scope* sc);
Helper function for easy error propagation. If error occurs, returns ErrorExp. Otherwise returns NULL.