Пример #1
0
        private BoundExpression BindInExpression(InExpressionSyntax node)
        {
            // e IN (e1, e2..eN)
            //
            // ===>
            //
            // e = e1 OR e = e2 .. OR e = eN

            var boundExpression  = BindExpression(node.Expression);
            var boundComparisons = from a in node.ArgumentList.Arguments
                                   let boundArgument = BindExpression(a)
                                                       let boundComparision = BindBinaryExpression(a.Span, BinaryOperatorKind.Equal, boundExpression, boundArgument)
                                                                              select boundComparision;

            return(boundComparisons.Aggregate <BoundExpression, BoundExpression>(null, (c, b) => c == null ? b : BindBinaryExpression(node.Span, BinaryOperatorKind.LogicalOr, c, b)));
        }
Пример #2
0
 public virtual void VisitInExpression(InExpressionSyntax node)
 {
     DefaultVisit(node);
 }
Пример #3
0
 public virtual TResult VisitInExpression(InExpressionSyntax node)
 {
     return(DefaultVisit(node));
 }