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