示例#1
0
 public override object VisitContinueStatement(BoundContinueStatement node, object arg)
 {
     // While continue statements do no affect definite assignment, subclasses
     // such as region flow analysis depend on their presence as pending branches.
     this.pendingBranches.Add(new PendingBranch(node, this.state));
     SetUnreachable();
     return(null);
 }
示例#2
0
文件: Loops.cs 项目: sperling/cskarp
        public BoundContinueStatement BindContinue(ContinueStatementSyntax node)
        {
            var target = this.context.GetContinueLabel();

            if (target == null)
            {
                Error(ErrorCode.ERR_NoBreakOrCont, node);
                return(BoundContinueStatement.AsError(node, null));
            }
            return(new BoundContinueStatement(node, target));
        }
        public override BoundNode VisitContinueStatement(BoundContinueStatement node)
        {
            BoundStatement result = new BoundGotoStatement(node.Syntax, node.Label, node.HasErrors);

            if (this.Instrument && !node.WasCompilerGenerated)
            {
                result = _instrumenter.InstrumentContinueStatement(node, result);
            }

            return(result);
        }
示例#4
0
 public virtual void VisitContinueStatement(BoundContinueStatement node) =>
 this.DefaultVisit(node);
示例#5
0
 public virtual BoundStatement InstrumentContinueStatement(BoundContinueStatement original, BoundStatement rewritten)
 {
     return(InstrumentStatement(original, rewritten));
 }
示例#6
0
 public override BoundStatement InstrumentContinueStatement(BoundContinueStatement original, BoundStatement rewritten)
 {
     return(AddSequencePoint(base.InstrumentContinueStatement(original, rewritten)));
 }
 public override BoundStatement InstrumentContinueStatement(BoundContinueStatement original, BoundStatement rewritten)
 {
     return(AddDynamicAnalysis(original, base.InstrumentContinueStatement(original, rewritten)));
 }
示例#8
0
 protected virtual void VisitContinueStatement(BoundContinueStatement node)
 {
 }
示例#9
0
 public override BoundStatement InstrumentContinueStatement(BoundContinueStatement original, BoundStatement rewritten)
 {
     return(Previous.InstrumentContinueStatement(original, rewritten));
 }
示例#10
0
 public override BoundNode VisitContinueStatement(BoundContinueStatement node)
 {
     Debug.Assert(node != null);
     return(new BoundGotoStatement(node.Syntax, node.Label, node.HasErrors));
 }
示例#11
0
 public override BoundNode VisitContinueStatement(BoundContinueStatement node)
 {
     Debug.Assert(node != null);
     return new BoundGotoStatement(node.Syntax, node.Label, node.HasErrors);
 }