GetParameterCount() static private method

static private GetParameterCount ( OverloadInfo method, SelfCallConvention callConvention, int &mandatory, int &optional ) : void
method Microsoft.Scripting.Actions.Calls.OverloadInfo
callConvention SelfCallConvention
mandatory int
optional int
return void
Example #1
0
        public override int GetArity()
        {
            int  minParameters = Int32.MaxValue;
            int  maxParameters = 0;
            bool hasOptional   = false;

            foreach (OverloadInfo method in MethodBases)
            {
                int mandatory, optional;
                RubyOverloadResolver.GetParameterCount(method, CallConvention, out mandatory, out optional);
                if (mandatory < minParameters)
                {
                    minParameters = mandatory;
                }
                if (mandatory > maxParameters)
                {
                    maxParameters = mandatory;
                }
                if (!hasOptional && optional > 0)
                {
                    hasOptional = true;
                }
            }
            if (hasOptional || maxParameters > minParameters)
            {
                return(-minParameters - 1);
            }
            else
            {
                return(minParameters);
            }
        }