W3cubDocs

/D

dmd.staticcond

Compiler implementation of the D programming language.

Authors:
Walter Bright
License:
Boost License 1.0
Source
staticcond.d
Documentation
https://dlang.org/phobos/dmd_staticcond.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/staticcond.d
bool evalStaticCondition(Scope* sc, Expression original, Expression e, out bool errors, Expressions* negatives = null);

Semantically analyze and then evaluate a static condition at compile time. This is special because short circuit operators &&, || and ?: at the top level are not semantically analyzed if the result of the expression is not necessary.

Parameters:
Scope* sc instantiating scope
Expression original original expression, for error messages
Expression e resulting expression
bool errors set to true if errors occurred
Expressions* negatives array to store negative clauses
Returns:
true if evaluates to true
const(char)* visualizeStaticCondition(Expression original, Expression instantiated, const Expression[] negatives, bool full, ref uint itemCount);

Format a static condition as a tree-like structure, marking failed and bypassed expressions.

Parameters:
Expression original original expression
Expression instantiated instantiated expression
Expression[] negatives array with negative clauses from instantiated expression
bool full controls whether it shows the full output or only failed parts
uint itemCount returns the number of written clauses
Returns:
formatted string or null if the expressions were null, or if the instantiated expression is not based on the original one

© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_staticcond.html