public override Expression Visit(Expression node) { if (node == null) { return(null); } node = base.Visit(node); if (Predicate(node)) { var par = node.Type == typeof(void) ? Expression.Parameter(typeof(object), ""): Expression.Parameter(node.Type, "r_" + Replaced.Count); Replaced.Add(par, node); ParameterOrder.Add(par); return(par); } else { return(node); } }
public override Expression Visit(Expression node) { if (node == null) { return(null); } node = base.Visit(node); var annotator = Predicate(node); if (annotator != null) { var par = Expression.Parameter(node.Type == typeof(void) ? typeof(object) : node.Type, "r_" + Replaced.Count); annotator(par)?.Apply(par.AddParameterAnnotation); Replaced.Add(par, node); ParameterOrder.Add(par); return(par); } else { return(node); } }