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.optimize

Perform constant folding.
Authors:

Source optimize.d

Expression expandVar(int result, VarDeclaration v);
If variable has a const initializer, return that initializer.
Returns:
initializer if there is one, null if not, ErrorExp if error
Expression Expression_optimize(Expression e, int result, bool keepLvalue);
Constant fold an Expression.
Parameters:
Expression e expression to const fold; this may get modified in-place
int result WANTvalue, WANTexpand, or both
bool keepLvalue e is an lvalue, and keep it as an lvalue since it is an argument to a ref or out parameter, or the operand of & operator
Returns:
Constant folded version of e