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

Compiler implementation of the D programming language.
Authors:

Source 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