public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

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

            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);
        }
        public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

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

            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));
        }
Ejemplo n.º 3
0
 public override BoundStatement InstrumentLabelStatement(
     BoundLabeledStatement original,
     BoundStatement rewritten
     )
 {
     return(Previous.InstrumentLabelStatement(original, rewritten));
 }
Ejemplo n.º 4
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     VisitLabel(node);
     CheckReachable(node);
     VisitStatement(node.Body);
     return(null);
 }
        public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

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

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

            if (this.GenerateDebugInfo)
            {
                var labeledSyntax = node.Syntax as LabeledStatementSyntax;
                if (labeledSyntax != null)
                {
                    var span = TextSpan.FromBounds(labeledSyntax.Identifier.SpanStart, labeledSyntax.ColonToken.Span.End);
                    labelStatement = factory.SequencePointWithSpan(labeledSyntax, span, 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));
        }
Ejemplo n.º 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));
        }
        public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

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

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

            if (this.GenerateDebugInfo)
            {
                var labeledSyntax = node.Syntax as LabeledStatementSyntax;
                if (labeledSyntax != null)
                {
                    var span = TextSpan.FromBounds(labeledSyntax.Identifier.SpanStart, labeledSyntax.ColonToken.Span.End);
                    labelStatement = _factory.SequencePointWithSpan(labeledSyntax, span, 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);
        }
        public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
        {
            Debug.Assert(node != null);

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

            return(MakeLabeledStatement(node, rewrittenBody));
        }
Ejemplo n.º 9
0
 public virtual BoundStatement InstrumentLabelStatement(
     BoundLabeledStatement original,
     BoundStatement rewritten
     )
 {
     Debug.Assert(original.Syntax.Kind() == SyntaxKind.LabeledStatement);
     return(InstrumentStatement(original, rewritten));
 }
Ejemplo n.º 10
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));
        }
Ejemplo n.º 11
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     ResolveLabel(node, node.Label);
     return base.VisitLabeledStatement(node);
 }
Ejemplo n.º 12
0
 protected override void VisitLabel(BoundLabeledStatement node)
 {
     _labelsDefined[node.Label] = _currentBlock;
     base.VisitLabel(node);
 }
Ejemplo n.º 13
0
 protected override void VisitLabel(BoundLabeledStatement node)
 {
     _labelsDefined.Add(node.Label);
     base.VisitLabel(node);
 }
Ejemplo n.º 14
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);
 }
Ejemplo n.º 15
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     AddTarget(node.Label);
     return(base.VisitLabeledStatement(node));
 }
Ejemplo n.º 16
0
 public override BoundStatement InstrumentLabelStatement(BoundLabeledStatement original, BoundStatement rewritten)
 {
     return Previous.InstrumentLabelStatement(original, rewritten);
 }
Ejemplo n.º 17
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     AddTarget(node.Label);
     return base.VisitLabeledStatement(node);
 }
Ejemplo n.º 18
0
 public override BoundNode VisitLabeledStatement(BoundLabeledStatement node)
 {
     ResolveLabel(node, node.Label);
     return(base.VisitLabeledStatement(node));
 }
Ejemplo n.º 19
0
 public virtual BoundStatement InstrumentLabelStatement(BoundLabeledStatement original, BoundStatement rewritten)
 {
     Debug.Assert(original.Syntax.Kind() == SyntaxKind.LabeledStatement);
     return InstrumentStatement(original, rewritten);
 }