private Expression GetArgument(int argIndex, out bool isSplatted) {
if (argIndex < _callArguments.SimpleArgumentCount) {
isSplatted = false;
return _callArguments.GetSimpleArgumentExpression(argIndex);
}
int i = argIndex - _callArguments.SimpleArgumentCount;
if (i < _listLength) {
isSplatted = true;
return Ast.Call(_listVariable, Methods.IList_get_Item, AstUtils.Constant(i));
}
if (i == _listLength && _callArguments.Signature.HasRhsArgument) {
isSplatted = false;
return _callArguments.GetRhsArgumentExpression();
}
isSplatted = false;
return null;
}