protected override Expression VisitDynamic(DynamicExpression node) { int yields = _yields.Count; ReadOnlyCollection <Expression> a = Visit(node.Arguments); if (a == node.Arguments) { return(node); } if (yields == _yields.Count) { return(Expression.MakeDynamic(node.DelegateType, node.Binder, a)); } return(Expression.Block( ToTemp(ref a), Expression.MakeDynamic(node.DelegateType, node.Binder, a) )); }