# dmd.optimize

Perform constant folding.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: optimize.d

Documentation: https://dlang.org/phobos/dmd_optimize.html

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

- `expandVar`

  #### Declaration

  `Expression `expandVar`(int `result`, VarDeclaration `v`);`

  If variable has a const initializer, return that initializer.

  #### Return Value

  initializer if there is one, `null` if not, ErrorExp if error

- `Expression_optimize`

  #### Declaration

  `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

  #### Return Value

  Constant folded version of ``e``