protected override bool VisitLambda(LambdaExpression x, LambdaExpression y) { if (this.DefaultVisit(x, y)) { if (x.Parameters.Count != y.Parameters.Count) { return(false); } if (this.ParametersByIndex) { ExpressionEqualityComparer.ParameterMaps item = new ExpressionEqualityComparer.ParameterMaps(Lambda.GetParametersMap(x), Lambda.GetParametersMap(y)); this._paramMaps.Push(item); try { return(this.Visit(x.Body, y.Body)); } finally { this._paramMaps.Pop(); } } if (VisitLists <ParameterExpression>(x.Parameters, y.Parameters, new Func <ParameterExpression, ParameterExpression, bool>(this, this.VisitParameter))) { return(this.Visit(x.Body, y.Body)); } } return(false); }
public bool Equals(Expression x, IDictionary <ParameterExpression, int> xParameterIndexMap, Expression y, IDictionary <ParameterExpression, int> yParameterIndexMap) { bool flag; if (x == y) { return(true); } if ((x == null) || (y == null)) { return(false); } if (!this.ParametersByIndex) { return(this.Visit(x, y)); } ExpressionEqualityComparer.ParameterMaps item = new ExpressionEqualityComparer.ParameterMaps(xParameterIndexMap ?? ExpressionEqualityComparer.EmptyMap, yParameterIndexMap ?? ExpressionEqualityComparer.EmptyMap); this._paramMaps.Push(item); try { flag = this.Visit(x, y); } finally { this._paramMaps.Pop(); } return(flag); }
internal IDictionary <ParameterExpression, int> < VisitParameter > b__32_1(ExpressionEqualityComparer.ParameterMaps p) { return(p.Y); }