mirror of https://gitlab.com/basile.b/dexed.git
#104, add support for ternary expressions
This commit is contained in:
parent
b461b9a12f
commit
3428a0f567
|
@ -271,6 +271,15 @@ private final class HalsteadMetric: ASTVisitor
|
||||||
expr.accept(this);
|
expr.accept(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override void visit(const(TernaryExpression) expr)
|
||||||
|
{
|
||||||
|
if (expr.orOrExpression)
|
||||||
|
++operators["if"];
|
||||||
|
if (expr.expression)
|
||||||
|
++operators["else"];
|
||||||
|
expr.accept(this);
|
||||||
|
}
|
||||||
|
|
||||||
override void visit(const(TypeidExpression) expr)
|
override void visit(const(TypeidExpression) expr)
|
||||||
{
|
{
|
||||||
++operators["typeid"];
|
++operators["typeid"];
|
||||||
|
@ -869,6 +878,19 @@ unittest
|
||||||
assert(r.operatorsKinds == 4);
|
assert(r.operatorsKinds == 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unittest
|
||||||
|
{
|
||||||
|
Function r =
|
||||||
|
q{
|
||||||
|
void foo()
|
||||||
|
{
|
||||||
|
a = true ? 0 : 1;
|
||||||
|
}
|
||||||
|
}.test;
|
||||||
|
assert(r.operandsKinds == 4);
|
||||||
|
assert(r.operatorsKinds == 3);
|
||||||
|
}
|
||||||
|
|
||||||
version(none) unittest
|
version(none) unittest
|
||||||
{
|
{
|
||||||
// TODO: detect function call w/o parens
|
// TODO: detect function call w/o parens
|
||||||
|
|
Loading…
Reference in New Issue