private Ust GetAnonymousMethod(LambdaExpressionSyntax node, ParameterDeclaration[] parameters) { var idNameSyntax = node.Body as IdentifierNameSyntax; Statement bodyStatement; if (idNameSyntax != null) { bodyStatement = new ReturnStatement((Expression)VisitIdentifierName(idNameSyntax), node.Body.GetTextSpan()); } else { var visited = base.Visit(node.Body); if (visited is Statement) { bodyStatement = (Statement)visited; } else { bodyStatement = new ExpressionStatement((Expression)visited, node.Body.GetTextSpan()); } } var body = new BlockStatement(new[] { bodyStatement }, node.Body.GetTextSpan()); var result = new AnonymousMethodExpression(parameters, body, node.GetTextSpan()); return(result); }