コード例 #1
0
        protected internal override Expression VisitWhile(WhileCSharpStatement node)
        {
            PushScope(node.Locals);

            var res = base.VisitWhile(node);

            PopScope(node.Locals);

            return(res);
        }
コード例 #2
0
        protected internal override Expression VisitWhile(WhileCSharpStatement node)
        {
            var test = Visit(node.Test);

            PushLabelInfo(node);

            var body = Visit(node.Body);

            PopLabelInfo(out LabelTarget @break, out LabelTarget @continue);

            return(node.Update(@break, @continue, test, body));
        }
コード例 #3
0
        protected internal override Expression VisitWhile(WhileCSharpStatement node)
        {
            var test = Visit(node.Test);

            PushLabelInfo(node);

            var body = Visit(node.Body);

            var @break = default(LabelTarget);
            var @continue = default(LabelTarget);
            PopLabelInfo(out @break, out @continue);

            return node.Update(@break, @continue, test, body);
        }
コード例 #4
0
        protected internal override Expression VisitWhile(WhileCSharpStatement node)
        {
            // NB: If we do optimizations involving variables, we'll need to track scopes here.

            var variables = VisitAndConvert(node.Locals, nameof(VisitFor));

            var test = Visit(node.Test);

            PushLabelInfo(node);

            var body = Visit(node.Body);

            PopLabelInfo(out LabelTarget @break, out LabelTarget @continue);

            return(node.Update(@break, @continue, test, body, variables));
        }
コード例 #5
0
            protected internal override Expression VisitWhile(WhileCSharpStatement node)
            {
                Visited = true;

                return(base.VisitWhile(node));
            }