- addDtorHook
Expression addDtorHook(Expression e, Scope* sc)
Destructors are attached to VarDeclarations.
Hence, if expression returns a temp that needs a destructor,
make sure and create a VarDeclaration for that temp.
- arrayExpressionSemantic
bool arrayExpressionSemantic(Expression[] 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.
- checkAddressVar
bool checkAddressVar(Scope* sc, Expression exp, VarDeclaration v)
Determine if exp, which gets its address taken, can do so safely.
- checkAddressable
bool checkAddressable(Expression e, Scope* sc)
This check ensures that the object in exp can have its address taken, or
issue a diagnostic error.
- checkSharedAccess
bool checkSharedAccess(Expression e, Scope* sc, bool returnRef)
If expression is shared, check that we can access it.
Give error message if not.
- doCopyOrMove
Expression doCopyOrMove(Scope* sc, Expression e, Type t)
Handle the postblit call on lvalue, or the move of rvalue.
- dotIdSemanticProp
Expression dotIdSemanticProp(DotIdExp exp, Scope* sc, bool gag)
Resolve properties, i.e. e1.ident, without seeing UFCS.
- dotTemplateSemanticProp
Expression dotTemplateSemanticProp(DotTemplateInstanceExp exp, Scope* sc, bool gag)
Resolve e1.ident!tiargs without seeing UFCS.
- 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.
- getVarExp
Expression getVarExp(EnumMember em, Loc loc, Scope* sc)
Returns em as a VariableExp
- hasThis
FuncDeclaration hasThis(Scope* sc)
Determine if this is available by walking up the enclosing
scopes until a function is found.
- 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.
- 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.
- symbolToExp
Expression symbolToExp(Dsymbol s, Loc loc, Scope* sc, bool hasOverloads)
Turn symbol s into the expression it represents.
- toBoolean
Expression toBoolean(Expression exp, Scope* sc)
Try to treat exp as a boolean,
- toUTF8
StringExp toUTF8(StringExp se, Scope* sc)
Convert string to char[].
- 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.
- valueNoDtor
Expression valueNoDtor(Expression e)
If we want the value of this expression, but do not want to call
the destructor on it.
- verifyHookExist
bool verifyHookExist(Loc loc, Scope sc, Identifier id, string description, Identifier module_)
Make sure that the runtime hook id exists.
Semantic analysis of expressions.
Specification: ($LINK2 https://dlang.org/spec/expression.html, Expressions)