public override BoundNode VisitThrowStatement(BoundThrowStatement node) { BoundSpillSequenceBuilder builder = null; BoundExpression expression = VisitExpression(ref builder, node.ExpressionOpt); return(UpdateStatement(builder, node.Update(expression, node.IsAbort))); }
public override BoundNode VisitThrowStatement(BoundThrowStatement node) { if (node.ExpressionOpt != null && !node.IsAbort) { RecordThrow(node.Syntax, node.ExpressionOpt.Type); } return(base.VisitThrowStatement(node)); }
public override BoundNode VisitThrowStatement(BoundThrowStatement node) { if (node.ExpressionOpt != null || _currentAwaitCatchFrame == null) { return(base.VisitThrowStatement(node)); } return(Rethrow(_currentAwaitCatchFrame.pendingCaughtException)); }
public override BoundNode VisitThrowStatement(BoundThrowStatement node) { var result = (BoundStatement)base.VisitThrowStatement(node); if (this.Instrument && !node.WasCompilerGenerated) { result = _instrumenter.InstrumentThrowStatement(node, result); } return(result); }
internal void Parse(BoundThrowStatement boundThrowStatement) { if (boundThrowStatement == null) { throw new ArgumentNullException(); } if (boundThrowStatement.ExpressionOpt != null) { this.ExpressionOpt = Deserialize(boundThrowStatement.ExpressionOpt) as Expression; } }
private void EmitThrowStatement(BoundThrowStatement node) { EmitThrow(node.ExpressionOpt); }
private void EmitThrowStatement(BoundThrowStatement node) { BoundExpression expr = node.ExpressionOpt; if (expr != null) { this.EmitExpression(expr, true); var exprType = expr.Type; // Expression type will be null for "throw null;". if (((object)exprType != null) && (exprType.TypeKind == TypeKind.TypeParameter)) { this.EmitBox(exprType, expr.Syntax); } } builder.EmitThrow(isRethrow: expr == null); }
public override object VisitThrow(BoundThrowStatement x) { return(x.Update((BoundExpression)x.Thrown)); }
public virtual BoundStatement InstrumentThrowStatement(BoundThrowStatement original, BoundStatement rewritten) { return(InstrumentStatement(original, rewritten)); }
public override BoundStatement InstrumentThrowStatement(BoundThrowStatement original, BoundStatement rewritten) { return(AddSequencePoint(base.InstrumentThrowStatement(original, rewritten))); }
public override BoundStatement InstrumentThrowStatement(BoundThrowStatement original, BoundStatement rewritten) { return(AddDynamicAnalysis(original, base.InstrumentThrowStatement(original, rewritten))); }
public override BoundStatement InstrumentThrowStatement(BoundThrowStatement original, BoundStatement rewritten) { return(Previous.InstrumentThrowStatement(original, rewritten)); }
public override object VisitThrowStatement(BoundThrowStatement node, object arg) { VisitExpression(node.Expression); SetUnreachable(); return(null); }