Example #1
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     VisitLabel(node);
     CheckReachable(node);
     VisitStatement(node.Body);
     return(null);
 }
Example #2
0
        public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

            var rewrittenBody = (BoundStatement)Visit(node.Body);

            return(MakeLabeledStatement(node, rewrittenBody));
        }
Example #3
0
        public override BoundStatement InstrumentLabelStatement(BoundLabeledStatement original, BoundStatement rewritten)
        {
            var labeledSyntax = (LabeledStatementSyntax)original.Syntax;
            var span          = TextSpan.FromBounds(labeledSyntax.Identifier.SpanStart, labeledSyntax.ColonToken.Span.End);

            return(new BoundSequencePointWithSpan(labeledSyntax,
                                                  base.InstrumentLabelStatement(original, rewritten),
                                                  span));
        }
Example #4
0
        public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

            var rewrittenBody = (BoundStatement)Visit(node.Body);

            var labelStatement = new BoundLabelStatement(node.Syntax, node.Label);
            if (rewrittenBody == null)
            {
                // Body may be null if the body has no associated IL
                // (declaration with no initializer for instance.)
                return labelStatement;
            }

            return BoundStatementList.Synthesized(node.Syntax, labelStatement, rewrittenBody);
        }
Example #5
0
        public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

            var rewrittenBody = (BoundStatement)Visit(node.Body);

            var labelStatement = new BoundLabelStatement(node.Syntax, node.Label);

            if (rewrittenBody == null)
            {
                // Body may be null if the body has no associated IL
                // (declaration with no initializer for instance.)
                return(labelStatement);
            }

            return(BoundStatementList.Synthesized(node.Syntax, labelStatement, rewrittenBody));
        }
Example #6
0
        private BoundStatement MakeLabeledStatement(BoundLabeledStatement node, BoundStatement rewrittenBody)
        {
            BoundStatement labelStatement = new BoundLabelStatement(node.Syntax, node.Label);

            if (this.Instrument)
            {
                var labeledSyntax = node.Syntax as LabeledStatementSyntax;
                if (labeledSyntax != null)
                {
                    labelStatement = _instrumenter.InstrumentLabelStatement(node, labelStatement);
                }
            }

            if (rewrittenBody == null)
            {
                // Body may be null if the body has no associated IL
                // (declaration with no initializer for instance.)
                return(labelStatement);
            }

            return(BoundStatementList.Synthesized(node.Syntax, labelStatement, rewrittenBody));
        }
Example #7
0
 protected override void VisitLabel(BoundLabeledStatement node)
 {
     _labelsDefined[node.Label] = _currentBlock;
     base.VisitLabel(node);
 }
Example #8
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     ResolveLabel(node, node.Label);
     return(base.VisitLabeledStatement(node));
 }
Example #9
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     AddTarget(node.Label);
     return(base.VisitLabeledStatement(node));
 }
Example #10
0
 public virtual BoundStatement InstrumentLabelStatement(BoundLabeledStatement original, BoundStatement rewritten)
 {
     Debug.Assert(original.Syntax.Kind() == SyntaxKind.LabeledStatement);
     return(InstrumentStatement(original, rewritten));
 }
Example #11
0
 public override BoundStatement InstrumentLabelStatement(BoundLabeledStatement original, BoundStatement rewritten)
 {
     return(Previous.InstrumentLabelStatement(original, rewritten));
 }