private object[] GetArgumentValues(Arguments arguments)
{
var values = new List<object>();
foreach (var argument in arguments.Children)
{
var value = argument.Expression.Accept(this);
if (argument.ShouldExpand)
{
if (value == null)
{
values.Add(null);
}
else if (value is BikeArray)
{
values.AddRange(((BikeArray)value).Cast<object>());
}
else
{
throw ErrorFactory.CreateTypeError("Can only expand arrays");
}
}
else
{
values.Add(value);
}
}
return values.ToArray();
}