public override IAssignableExpression VisitAnonymousMethodExpression(IAnonymousMethodExpression expr, IList <IStatement> body) { var lambdaName = expr.GetName(); var lambdaBody = new KaVEList <IStatement>(); var isCompletionTarget = expr == _marker.HandlingNode && CompletionCase.InBody == _marker.Case; if (isCompletionTarget) { var stmt = new ExpressionStatement { Expression = new CompletionExpression() }; lambdaBody.Add(stmt); } var bodyVisitor = new StatementVisitor(_nameGen, _marker); expr.Body.Accept(bodyVisitor, lambdaBody); return(new LambdaExpression { Name = lambdaName, Body = lambdaBody }); }
public override IAssignableExpression VisitAnonymousMethodExpression(IAnonymousMethodExpression expr, IList <IStatement> body) { var lambdaName = expr.GetName(); var lambdaBody = new KaVEList <IStatement>(); var bodyVisitor = new BodyVisitor(_nameGen, _marker); expr.Body.Accept(bodyVisitor, lambdaBody); return(new LambdaExpression { Name = lambdaName, Body = lambdaBody }); }