internal void AddSplattedArgumentTest(IList/*!*/ value, Expression/*!*/ expression, out int listLength, out ParameterExpression/*!*/ listVariable) {
Expression assignment;
listVariable = expression as ParameterExpression;
if (listVariable != null && typeof(IList).IsAssignableFrom(expression.Type)) {
assignment = expression;
} else {
listVariable = GetTemporary(typeof(IList), "#list");
assignment = Ast.Assign(listVariable, AstUtils.Convert(expression, typeof(IList)));
}
listLength = value.Count;
AddCondition(Ast.Equal(Ast.Property(assignment, typeof(ICollection).GetProperty("Count")), AstUtils.Constant(value.Count)));
}