protected override void DoEmit() { if (this.ExpressionStatement.IsNull) { return; } var oldSemiColon = this.Emitter.EnableSemicolon; List <Expression> awaiters = null; if (this.Emitter.IsAsync) { var awaitSearch = new AwaitSearchVisitor(); this.ExpressionStatement.Expression.AcceptVisitor(awaitSearch); awaiters = awaitSearch.GetAwaitExpressions(); } bool isAwaiter = this.ExpressionStatement.Expression is UnaryOperatorExpression && ((UnaryOperatorExpression)this.ExpressionStatement.Expression).Operator == UnaryOperatorType.Await; this.ExpressionStatement.Expression.AcceptVisitor(this.Emitter); if (this.Emitter.EnableSemicolon && !isAwaiter) { this.WriteSemiColon(true); } if (oldSemiColon) { this.Emitter.EnableSemicolon = true; } }
protected override void DoEmit() { if (this.ExpressionStatement.IsNull) { return; } var oldSemiColon = this.Emitter.EnableSemicolon; List<Expression> awaiters = null; if (this.Emitter.IsAsync) { var awaitSearch = new AwaitSearchVisitor(); this.ExpressionStatement.Expression.AcceptVisitor(awaitSearch); awaiters = awaitSearch.GetAwaitExpressions(); } bool isAwaiter = this.ExpressionStatement.Expression is UnaryOperatorExpression && ((UnaryOperatorExpression)this.ExpressionStatement.Expression).Operator == UnaryOperatorType.Await; this.ExpressionStatement.Expression.AcceptVisitor(this.Emitter); if (this.Emitter.EnableSemicolon && !isAwaiter) { this.WriteSemiColon(true); } if (oldSemiColon) { this.Emitter.EnableSemicolon = true; } }
protected Expression[] GetAwaiters(AstNode node) { var awaitSearch = new AwaitSearchVisitor(); node.AcceptVisitor(awaitSearch); return(awaitSearch.GetAwaitExpressions().ToArray()); }
protected Expression[] GetAwaiters(AstNode node) { var awaitSearch = new AwaitSearchVisitor(); node.AcceptVisitor(awaitSearch); return awaitSearch.GetAwaitExpressions().ToArray(); }