public override AstVisitAction VisitArrayExpression(ArrayExpressionAst arrayExpressionAst)
{
List<object> elements = new List<object>();
var numStatements = arrayExpressionAst.SubExpression.Statements.Count;
foreach (var stmt in arrayExpressionAst.SubExpression.Statements)
{
var result = EvaluateAst(stmt, false);
// expand if only one element and it is enumerable
var enumerator = LanguagePrimitives.GetEnumerator(result);
if (numStatements > 1 || enumerator == null)
{
elements.Add(result);
}
else
{
while (enumerator.MoveNext())
{
elements.Add(enumerator.Current);
}
}
}
this._pipelineCommandRuntime.WriteObject(elements.ToArray());
return AstVisitAction.SkipChildren;
}