View source code
Display the source code in dmd/expressionsem.d from which this page was generated on github.
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 local clone.

Module dmd.expressionsem

Semantic analysis of expressions.

Specification

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

Documentation

https://dlang.org/phobos/dmd_expressionsem.html

Coverage

https://codecov.io/gh/dlang/dmd/src/master/src/dmd/expressionsem.d

Functions

NameDescription
arrayExpressionSemantic(exps, sc, preserveErrors) Perform semantic() on an array of Expressions.
binSemantic(e, sc) Helper function for easy error propagation. If error occurs, returns ErrorExp. Otherwise returns NULL.
checkAddressVar(sc, exp, v) Determine if exp, which gets its address taken, can do so safely.
checkSharedAccess(e, sc, returnRef) If expression is shared, check that we can access it. Give error message if not.
expressionsToString(buf, sc, exps) Perform semantic analysis and CTFE on expressions to produce a string.
getThisSkipNestedFuncs(loc, sc, s, ad, e1, t, var, flag) Helper function for getRightThis(). Gets this of the next outer aggregate.
getVarExp(em, loc, sc) Returns em as a VariableExp
makeThis2Argument(loc, sc, fd) Make a dual-context container for use as a this argument.
resolveIsPackage(sym) Determines whether a symbol represents a module or package (Used as a helper for is(type == module) and is(type == package))
resolveOpDollar(sc, ae, pe0) Runs semantic on ae.arguments. Declares temporary variables if '$' was used.
resolveOpDollar(sc, ae, ie, pe0) Runs semantic on se.lwr and se.upr. Declares a temporary variable if '$' was used.
resolvePropertiesOnly(sc, e1) If e1 is a property function (template), resolve it.
semanticString(sc, exp, s) Resolve exp as a compile-time known string.
semanticY(exp, sc, flag) Resolve properties, i.e. e1.ident, without seeing UFCS.
symbolToExp(s, loc, sc, hasOverloads) Turn symbol s into the expression it represents.
toBoolean(exp, sc) Try to treat exp as a boolean,
trySemantic(exp, sc) Try to run semantic routines. If they fail, return NULL.
unaSemantic(e, sc) Helper function for easy error propagation. If error occurs, returns ErrorExp. Otherwise returns NULL.
verifyHookExist(loc, sc, id, description, module_) Make sure that the runtime hook id exists.

Authors

Walter Bright

License

Boost License 1.0