View source code
Display the source code in dmd/sideeffect.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.sideeffect

Find side-effects of expressions.

Documentation

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

Coverage

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

Functions

NameDescription
callSideEffectLevel(f) Determine if the call of f, or function type or delegate type t1, has any side effects.
copyToTemp(stc, name, e) Build a temporary variable to copy the value of e into.
discardValue(e) The result of this expression will be discarded. Print error messages if the operation has no side effects (and hence is meaningless).
extractSideEffect(sc, name, e0, e, alwaysCopy) Build a temporary variable to extract e's evaluation, if e is not trivial.
hasSideEffect(e, assumeImpureCalls) Determine if Expression has any side effects.
isTrivialExp(e) Front-end expression rewriting should create temporary variables for non trivial sub-expressions in order to: 1. save evaluation order 2. prevent sharing of sub-expression in AST

Authors

Walter Bright

License

Boost License 1.0