public override BoundNode VisitThrowStatement(BoundThrowStatement node)
        {
            BoundExpression expressionOpt = (BoundExpression)this.Visit(node.ExpressionOpt);

            if (expressionOpt == null || expressionOpt.Kind != BoundKind.SpillSequence)
            {
                return(node.Update(expressionOpt));
            }

            var spill = (BoundSpillSequence)expressionOpt;

            return(RewriteSpillSequenceAsBlock(spill, node.Update(spill.Value)));
        }
Esempio n. 2
0
        public override BoundNode VisitThrowStatement(BoundThrowStatement node)
        {
            BoundSpillSequenceBuilder builder    = null;
            BoundExpression           expression = VisitExpression(ref builder, node.ExpressionOpt);

            return(UpdateStatement(builder, node.Update(expression)));
        }
Esempio n. 3
0
        public override BoundNode VisitThrowStatement(BoundThrowStatement node)
        {
            EnterStatement(node);

            BoundSpillSequenceBuilder builder    = null;
            BoundExpression           expression = VisitExpression(ref builder, node.ExpressionOpt);

            return(UpdateStatement(builder, node.Update(expression), substituteTemps: true));
        }
Esempio n. 4
0
 public override BoundNode VisitThrowStatement(BoundThrowStatement node)
 {
     BoundSpillSequence2 ss = null;
     BoundExpression expression = VisitExpression(ref ss, node.ExpressionOpt);
     return UpdateStatement(ss, node.Update(expression));
 }
        public override BoundNode VisitThrowStatement(BoundThrowStatement node)
        {
            BoundExpression expressionOpt = (BoundExpression)this.Visit(node.ExpressionOpt);

            if (expressionOpt == null || expressionOpt.Kind != BoundKind.SpillSequence)
            {
                return node.Update(expressionOpt);
            }

            var spill = (BoundSpillSequence)expressionOpt;
            return RewriteSpillSequenceAsBlock(spill, node.Update(spill.Value));
        }