private void Add(AstNode node) { if (InsertPosition >= 0) { AwaitExpressions.Insert(InsertPosition++, node); } else { AwaitExpressions.Add(node); } }
public override void VisitAwaitExpression(AwaitExpressionSyntax node) { ShouldStop = true; if (StopOnFirstAwaitExpression) { Debug.Assert(AwaitExpressions.Count == 0); AwaitExpressions.Add(node); } else { AwaitExpressions.Clear(); } }
public override void VisitReturnStatement(ReturnStatementSyntax node) { Debug.Assert(!StopOnFirstAwaitExpression); if (node.Expression is AwaitExpressionSyntax awaitExpression) { Visit(awaitExpression.Expression); if (!ShouldStop) { AwaitExpressions.Add(awaitExpression); } } else { ShouldStop = true; AwaitExpressions.Clear(); } }