public void AddSplatted(MetaObjectBuilder /*!*/ metaBuilder, CallArguments /*!*/ args)
{
var arg = args.GetSplattedArgument();
var parameter = args.GetSplattedArgumentExpression();
int listLength;
ParameterExpression listVariable;
if (metaBuilder.AddSplattedArgumentTest(arg, parameter, out listLength, out listVariable))
{
if (listLength > 0)
{
for (int i = 0; i < listLength; i++)
{
Add(
Ast.Call(
listVariable,
typeof(List <object>).GetMethod("get_Item"),
Ast.Constant(i)
)
);
}
}
}
else
{
// argument is not an array => add the argument itself:
Add(parameter);
}
}