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;
 }
Beispiel #4
0
            protected internal override Expression VisitBlock(BlockCSharpExpression node)
            {
                Visited = true;

                return(base.VisitBlock(node));
            }