From 7d9104e748aaf9f54a490a8ca143d2864ddb61d3 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sun, 23 Oct 2011 22:33:11 +0200 Subject: Evaluate expressions for the ternary operator the same way as for if-else, i.e. cast any value to bool diff --git a/src/expr.cc b/src/expr.cc index c9eda4e..fc1fbf0 100644 --- a/src/expr.cc +++ b/src/expr.cc @@ -75,9 +75,7 @@ Value Expression::evaluate(const Context *context) const return this->children[0]->evaluate(context) > this->children[1]->evaluate(context); if (this->type == "?:") { Value v = this->children[0]->evaluate(context); - if (v.type == Value::BOOL) - return this->children[v.b ? 1 : 2]->evaluate(context); - return Value(); + return this->children[v.toBool() ? 1 : 2]->evaluate(context); } if (this->type == "[]") { Value v1 = this->children[0]->evaluate(context); -- cgit v0.10.1