public override Expression GenerateRead(Compilation.AstGenerator gen) { Expression[] values = new Expression[arguments.Length + 1]; values[0] = function.GenerateRead(gen); for (int i = 0; i < arguments.Length; i++) { values[i + 1] = arguments[i].Value.GenerateRead(gen); } return gen.Call( new CallInfo(values.Length, arguments.Where(a => a.Name != null).Select(a => a.Name)), values ); }