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))); }
public virtual void VisitInExpression(InExpressionSyntax node) { DefaultVisit(node); }
public virtual TResult VisitInExpression(InExpressionSyntax node) { return(DefaultVisit(node)); }