public static IList <DynamicMetaObject /*!*/> NormalizeArguments(MetaObjectBuilder /*!*/ metaBuilder, CallArguments /*!*/ args, int minCount, int maxCount)
{
int lastSplattedArg;
IList list;
ParameterExpression listVariable;
// 2 hidden arguments: block and self
var actualArgs = CreateActualArguments(new List <DynamicMetaObject>(), metaBuilder, args, 2, maxCount, maxCount,
out lastSplattedArg, out list, out listVariable);
int actualCount = actualArgs.Count + actualArgs.CollapsedCount;
if (actualCount < minCount)
{
metaBuilder.SetWrongNumberOfArgumentsError(actualCount, minCount);
return(null);
}
else if (actualCount > maxCount)
{
metaBuilder.SetWrongNumberOfArgumentsError(actualCount, maxCount);
return(null);
}
// any collapsed args are out of limits:
return(actualArgs.Arguments);
}