public override BoundNode VisitConditionalGoto(BoundConditionalGoto node) { BoundExpression condition = (BoundExpression)this.Visit(node.Condition); if (condition.Kind != BoundKind.SpillSequence) { return node.Update(condition, node.JumpIfTrue, node.Label); } var spill = (BoundSpillSequence)condition; return RewriteSpillSequenceAsBlock(spill, node.Update(spill.Value, node.JumpIfTrue, node.Label)); }
public override BoundNode VisitConditionalGoto(BoundConditionalGoto node) { BoundExpression condition = (BoundExpression)this.Visit(node.Condition); if (condition.Kind != BoundKind.SpillSequence) { return(node.Update(condition, node.JumpIfTrue, node.Label)); } var spill = (BoundSpillSequence)condition; return(RewriteSpillSequenceAsBlock(spill, node.Update(spill.Value, node.JumpIfTrue, node.Label))); }
public override BoundNode VisitConditionalGoto(BoundConditionalGoto node) { BoundSpillSequenceBuilder builder = null; var condition = VisitExpression(ref builder, node.Condition); return(UpdateStatement(builder, node.Update(condition, node.JumpIfTrue, node.Label))); }
public override BoundNode VisitConditionalGoto(BoundConditionalGoto node) { Debug.Assert(tempSubstitution.Count == 0); BoundSpillSequenceBuilder builder = null; var condition = VisitExpression(ref builder, node.Condition); return(UpdateStatement(builder, node.Update(condition, node.JumpIfTrue, node.Label), substituteTemps: true)); }
public override BoundNode VisitConditionalGoto(BoundConditionalGoto node) { BoundSpillSequence2 ss = null; var condition = VisitExpression(ref ss, node.Condition); return UpdateStatement(ss, node.Update(condition, node.JumpIfTrue, node.Label)); }