protected internal override Expression VisitBlock(BlockCSharpExpression node) { if (CanOptimize(node)) { return FlattenBlocks(node); } var variables = VisitAndConvert(node.Variables, nameof(VisitBlock)); var statements = VisitSequence(node.Statements); var returnLabel = VisitLabelTarget(node.ReturnLabel); return node.Update(variables, statements, returnLabel); }
private static bool CanOptimize(BlockCSharpExpression block) { return(block.Type == typeof(void) && block.Variables.Count == 0); }
private static bool CanOptimize(BlockCSharpExpression block) { return block.Type == typeof(void) && block.Variables.Count == 0; }
protected internal override Expression VisitBlock(BlockCSharpExpression node) { Visited = true; return(base.VisitBlock(node)); }