public override void VisitYieldStatement(YieldStatementSyntax node) { bool isReturnStatement = node.IsKind(SyntaxKind.YieldReturnStatement); if (isReturnStatement && node.Expression != null) { _graph.AddEdge(node.Expression, SourceGraphEdge.ReturnsTo, _returningPoint.Peek()); } base.VisitYieldStatement(node); }
public override void VisitYieldStatement(YieldStatementSyntax node) { if (node.IsKind(SyntaxKind.YieldBreakStatement)) { // end not connected with data curNode = builder.CreateEndNode(node); } else { CreateConnectedEndNode(node); } }
public override void ApplyPatch() { if (Syntax.IsKind(SyntaxKind.YieldReturnStatement)) { var method = this.GetAncestor <MethodDeclarationTranslation>(); if (method != null) { method.IsYieldReturn = true; } } base.ApplyPatch(); }
public override SyntaxNode VisitYieldStatement(YieldStatementSyntax node) { if (node.IsKind(SyntaxKind.YieldBreakStatement)) { return(GetYieldReturnStatement(node.GetLeadingTrivia())); } var addYield = ExpressionStatement( InvocationExpression( MemberAccessExpression( SyntaxKind.SimpleMemberAccessExpression, IdentifierName(Identifier(TriviaList(node.GetLeadingTrivia()), "yields", TriviaList())), IdentifierName("Add"))) .WithArgumentList( ArgumentList( SingletonSeparatedList( Argument(node.Expression))))) .WithSemicolonToken(Token(TriviaList(), SyntaxKind.SemicolonToken, TriviaList(_transformResult.EndOfLineTrivia))); return(addYield); }
public override void VisitYieldStatement(YieldStatementSyntax node) { if (node.IsKind(SyntaxKind.YieldBreakStatement)) { // end not connected with data curNode = builder.CreateEndNode(node); } else { CreateConnectedEndNode(node); } }