dmd.staticcond
Lazily evaluate static conditions for static if
, static assert
and template constraints.
License
Source: staticcond.d
Documentation: https://dlang.org/phobos/dmd_staticcond.html
-
Declaration
bool
evalStaticCondition
(Scope*sc
, Expressionoriginal
, Expressione
, out boolerrors
, 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 messagesExpression
e
resulting expression
bool
errors
set to
true
iferrors
occurredExpressions*
negatives
array to store negative clauses
Return Value
true
if evaluates totrue
-
Declaration
const(char)*
visualizeStaticCondition
(Expressionoriginal
, Expressioninstantiated
, const Expression[]negatives
, boolfull
, ref uintitemCount
);Format a static condition as a tree-like structure, marking failed and bypassed expressions.
Parameters
Expression
original
original
expressionExpression
instantiated
instantiated
expressionExpression[]
negatives
array with negative clauses from
expressioninstantiated
bool
full
controls whether it shows the
full
output or only failed partsuint
itemCount
returns the number of written clauses
Return Value
formatted string or
null
if the expressions werenull
, or if theinstantiated
expression is not based on theoriginal
one