Esempio n. 1
0
                public override Expression BindArgsCount()
                {
                    int count = 0;

                    foreach (var x in _args)
                    {
                        if (!BinderHelpers.IsRuntimeChain(x.Type))
                        {
                            count++;
                        }
                    }

                    //
                    return(Expression.Constant(count, typeof(int)));
                }
Esempio n. 2
0
                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);
                }