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