@Override
protected TypedByteCodeNode visitIfExpression(IfExpression node, CompilerContext context)
{
TypedByteCodeNode conditionValue = process(node.getCondition(), context);
TypedByteCodeNode trueValue = process(node.getTrueValue(), context);
TypedByteCodeNode falseValue = process(node.getFalseValue().or(new NullLiteral()), context);
if (conditionValue.getType() == void.class) {
return falseValue;
}
Preconditions.checkState(conditionValue.getType() == boolean.class);