public override Expression BindArgsCount() { int count = 0; foreach (var x in _args) { if (!BinderHelpers.IsRuntimeChain(x.Type)) { count++; } } // return(Expression.Constant(count, typeof(int))); }
int MapToArgsIndex(int srcarg) { var args = _args; if (srcarg > 0 && srcarg < args.Length) // [0] is never IRuntimeChain { // skip RuntimeChain's for (int i = 1; i <= srcarg && i < args.Length; i++) { if (BinderHelpers.IsRuntimeChain(args[i].Type)) { ++srcarg; } } } return(srcarg); }