protected virtual void VisitNoOpStatement(BoundNoOpStatement node) { }
private void EmitNoOpStatement(BoundNoOpStatement statement) { switch (statement.Flavor) { case NoOpStatementFlavor.Default: if (this.noOptimizations) { builder.EmitOpCode(ILOpCode.Nop); } break; case NoOpStatementFlavor.AwaitYieldPoint: Debug.Assert((this.asyncYieldPoints == null) == (this.asyncResumePoints == null)); if (this.asyncYieldPoints == null) { this.asyncYieldPoints = ArrayBuilder<int>.GetInstance(); this.asyncResumePoints = ArrayBuilder<int>.GetInstance(); } Debug.Assert(this.asyncYieldPoints.Count == this.asyncResumePoints.Count); this.asyncYieldPoints.Add(this.builder.AllocateILMarker()); break; case NoOpStatementFlavor.AwaitResumePoint: Debug.Assert(this.asyncYieldPoints != null); Debug.Assert(this.asyncYieldPoints != null); this.asyncResumePoints.Add(this.builder.AllocateILMarker()); Debug.Assert(this.asyncYieldPoints.Count == this.asyncResumePoints.Count); break; case NoOpStatementFlavor.AsyncMethodCatchHandler: Debug.Assert(this.asyncCatchHandlerOffset < 0); // only one expected this.asyncCatchHandlerOffset = this.builder.AllocateILMarker(); break; default: throw ExceptionUtilities.UnexpectedValue(statement.Flavor); } }
private void EmitNoOpStatement(BoundNoOpStatement statement) { switch (statement.Flavor) { case NoOpStatementFlavor.Default: if (_ilEmitStyle == ILEmitStyle.Debug) { _builder.EmitOpCode(ILOpCode.Nop); } break; case NoOpStatementFlavor.AwaitYieldPoint: Debug.Assert((_asyncYieldPoints == null) == (_asyncResumePoints == null)); if (_asyncYieldPoints == null) { _asyncYieldPoints = ArrayBuilder<int>.GetInstance(); _asyncResumePoints = ArrayBuilder<int>.GetInstance(); } Debug.Assert(_asyncYieldPoints.Count == _asyncResumePoints.Count); _asyncYieldPoints.Add(_builder.AllocateILMarker()); break; case NoOpStatementFlavor.AwaitResumePoint: Debug.Assert(_asyncYieldPoints != null); Debug.Assert(_asyncYieldPoints != null); _asyncResumePoints.Add(_builder.AllocateILMarker()); Debug.Assert(_asyncYieldPoints.Count == _asyncResumePoints.Count); break; default: throw ExceptionUtilities.UnexpectedValue(statement.Flavor); } }
public override BoundStatement InstrumentNoOpStatement(BoundNoOpStatement original, BoundStatement rewritten) { return(AddSequencePoint(base.InstrumentNoOpStatement(original, rewritten))); }
public virtual BoundStatement InstrumentNoOpStatement(BoundNoOpStatement original, BoundStatement rewritten) { return(InstrumentStatement(original, rewritten)); }
public override BoundStatement InstrumentNoOpStatement(BoundNoOpStatement original, BoundStatement rewritten) { return(AddDynamicAnalysis(original, base.InstrumentNoOpStatement(original, rewritten))); }
internal void Parse(BoundNoOpStatement boundNoOpStatement) { }
public override BoundNode VisitNoOpStatement(BoundNoOpStatement node) { return((node.WasCompilerGenerated || !this.Instrument) ? new BoundBlock(node.Syntax, ImmutableArray <LocalSymbol> .Empty, ImmutableArray <BoundStatement> .Empty) : _instrumenter.InstrumentNoOpStatement(node, node)); }
public override BoundStatement InstrumentNoOpStatement(BoundNoOpStatement original, BoundStatement rewritten) { return(Previous.InstrumentNoOpStatement(original, rewritten)); }
public override object VisitNoOpStatement(BoundNoOpStatement node, object arg) { return(null); }