public ImmutableHashSet <object> VisitZenListAddFrontExpr <T>(ZenListAddFrontExpr <T> expression, Unit parameter) { return(LookupOrCompute(expression, () => { var x = expression.Element.Accept(this, parameter); var y = expression.Expr.Accept(this, parameter); return x.Union(y); })); }
public Expression VisitZenListAddFrontExpr <T>(ZenListAddFrontExpr <T> expression, ExpressionConverterEnvironment parameter) { return(LookupOrCompute(expression, () => { var method = typeof(ImmutableList <T>).GetMethodCached("Insert"); var list = expression.Expr.Accept(this, parameter); var toImmutableListMethod = typeof(CommonUtilities) .GetMethodCached("ToImmutableList") .MakeGenericMethod(typeof(T)); var immutableListExpr = Expression.Call(null, toImmutableListMethod, list); var element = expression.Element.Accept(this, parameter); return Expression.Call(immutableListExpr, method, Expression.Constant(0), element); })); }