public QilNode And(QilNode left, QilNode right)
{
CheckLogicArg(left);
CheckLogicArg(right);
if (!_debug)
{
// True, True => True (right) other, True => other (left)
// True, False => False (right) other, False => False (right)
// True, other => other (right) other, other => And
if (left.NodeType == QilNodeType.True || right.NodeType == QilNodeType.False)
{
return(right);
}
if (left.NodeType == QilNodeType.False || right.NodeType == QilNodeType.True)
{
return(left);
}
}
return(_f.And(left, right));
}