Пример #1
0
        public override SyntaxNode VisitWhileStatement(WhileStatementSyntax node)
        {
            var annotation = node.GetAnnotations(Annotations.AnnotationKind).FirstOrDefault();

            if (annotation == null)
            {
                return(base.VisitWhileStatement(node));
            }

            var instrumentedExpression = SyntaxFactory.BinaryExpression(SyntaxKind.LogicalAndExpression,
                                                                        SyntaxFactory.LiteralExpression(SyntaxKind.TrueLiteralExpression),
                                                                        node.Condition).WithAdditionalAnnotations(annotation);

            node = node.WithCondition(instrumentedExpression);

            return(base.VisitWhileStatement(node));
        }