internal void AddSubst(Expression left, Expression right) { foreach (Expression expr in this.m_leftExprList) { if (ExpressionMatcher.MemberAccessSubsumes(expr, left)) { return; } } this.m_leftExprList.Add(left); this.m_rightExprList.Add(right); }
internal override bool IsPartitionedBy(LambdaExpression keySel) { // Match the key selector functions: if (this.m_keySelector == null) { return(keySel == null); } if (keySel == null) { return(false); } return(ExpressionMatcher.Match(this.m_keySelector, keySel)); }
internal override Expression Visit(Expression expr) { if (expr == null) { return(expr); } for (int i = 0; i < this.m_leftExprList.Count; i++) { if (ExpressionMatcher.Match(expr, this.m_leftExprList[i], this.m_paramSubst)) { return(this.m_rightExprList[i]); } } return(base.Visit(expr)); }