public void VisitDel(DelStatement d)
{
var exprList = d.Expressions.AsList()
.Select(e => e.Accept(xlat))
.ToList();
if (exprList.Count == 1)
{
var aref = exprList[0] as CodeArrayIndexerExpression;
if (aref != null && aref.Indices.Length == 1)
{
// del foo[bar] is likely
// foo.Remove(bar)
gen.SideEffect(
gen.Appl(
new CodeMethodReferenceExpression(
aref.TargetObject,
"Remove"),
aref.Indices[0]));
return;
}
}
var fn = new CodeVariableReferenceExpression("WONKO_del");
foreach (var exp in exprList)
{
gen.SideEffect(gen.Appl(fn, exp));
}
}