Exemplo n.º 1
0
        public override BoundNode VisitAwaitExpression(BoundAwaitExpression node)
        {
            var ss          = new BoundSpillSequence2();
            var replacement = VisitExpression(ref ss, node);

            return(ss.Update(replacement));
        }
Exemplo n.º 2
0
        private static BoundExpression UpdateExpression(BoundSpillSequence2 ss, BoundExpression expression)
        {
            if (ss == null)
            {
                return(expression);
            }
            Debug.Assert(ss.Value == null);
            if (ss.Locals.Length == 0 && ss.Statements.Length == 0)
            {
                ss.Free();
                return(expression);
            }

            return(ss.Update(expression));
        }
Exemplo n.º 3
0
 public override BoundNode VisitAwaitExpression(BoundAwaitExpression node)
 {
     var ss = new BoundSpillSequence2();
     var replacement = VisitExpression(ref ss, node);
     return ss.Update(replacement);
 }
Exemplo n.º 4
0
        private static BoundExpression UpdateExpression(BoundSpillSequence2 ss, BoundExpression expression)
        {
            if (ss == null) return expression;
            Debug.Assert(ss.Value == null);
            if (ss.Locals.Length == 0 && ss.Statements.Length == 0)
            {
                ss.Free();
                return expression;
            }

            return ss.Update(expression);
        }