Пример #1
0
 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();
            }
        }