private BoundExpression BindBetweenExpression(BetweenExpressionSyntax node) { // left BETWEEN lowerBound AND upperBound // // ===> // // left >= lowerBound AND left <= upperBound var left = BindExpression(node.Left); var lowerBound = BindExpression(node.LowerBound); var upperBound = BindExpression(node.UpperBound); var lowerCheck = BindBinaryExpression(node.Span, BinaryOperatorKind.GreaterOrEqual, left, lowerBound); var upperCheck = BindBinaryExpression(node.Span, BinaryOperatorKind.LessOrEqual, left, upperBound); var boundsCheck = BindBinaryExpression(node.Span, BinaryOperatorKind.LogicalAnd, lowerCheck, upperCheck); return(BindOptionalNegation(node.Span, node.NotKeyword, boundsCheck)); }
public virtual void VisitBetweenExpression(BetweenExpressionSyntax node) { DefaultVisit(node); }
public virtual TResult VisitBetweenExpression(BetweenExpressionSyntax node) { return(DefaultVisit(node)); }