in src/Epam.GraphQL/Helpers/ExpressionRewriter.cs [34:78]
protected override Expression VisitBinary(BinaryExpression node)
{
if (node.NodeType == ExpressionType.AndAlso)
{
var left = Rewrite(node.Left);
var right = Rewrite(node.Right);
if (left.IsFalse() || right.IsFalse())
{
return Expression.Constant(false);
}
if (left.IsTrue())
{
return right;
}
if (right.IsTrue())
{
return left;
}
}
else if (node.NodeType == ExpressionType.OrElse)
{
var left = Rewrite(node.Left);
var right = Rewrite(node.Right);
if (left.IsTrue() || right.IsTrue())
{
return Expression.Constant(true);
}
if (left.IsFalse())
{
return right;
}
if (right.IsFalse())
{
return left;
}
}
return base.VisitBinary(node);
}