示例#1
0
        public void CreateArgumentListWithThreeExpressions()
        {
            var arguments = new List <ExpressionSyntax> {
                SyntaxFactory.IdentifierName(SyntaxFactory.Identifier("a")),
                SyntaxFactory.IdentifierName(SyntaxFactory.Identifier("b")),
                SyntaxFactory.IdentifierName(SyntaxFactory.Identifier("c"))
            };

            Assert.AreEqual("(a,b,c)", ArgumentListGenerator.CreateArgumentList(arguments).ToString());
        }
        private static ExpressionStatementSyntax _CreateParallelFor(ForStatementSyntax statement)
        {
            var variable = statement.Declaration.Variables.Single();
            var from     = variable.Initializer.Value;

            // The analyzer only allows binary expressions where the upper bound is on the left hand-side.
            // Therefore, no further checks are necessary.
            var binary = (BinaryExpressionSyntax)statement.Condition;
            var to     = binary.Right;

            if (binary.IsKind(SyntaxKind.LessThanOrEqualExpression))
            {
                // TODO maybe try to reduce resulting expressions like ...-1+1
                to = SyntaxFactory.BinaryExpression(SyntaxKind.AddExpression, to, _CreateOneLiteral());
            }

            return(SyntaxFactory.ExpressionStatement(
                       SyntaxFactory.InvocationExpression(
                           MemberAccessGenerator.CreateMemberAccess("Parallel", "For"),
                           ArgumentListGenerator.CreateArgumentList(from, to, LambdaGenerator.CreateLambdaOrDelegate(variable.Identifier, statement.Statement))
                           )
                       ).WithTriviaFrom(statement));
        }
示例#3
0
        public void CreateArgumentListWithOneExpression()
        {
            var identifier = SyntaxFactory.IdentifierName(SyntaxFactory.Identifier("a"));

            Assert.AreEqual("(a)", ArgumentListGenerator.CreateArgumentList(identifier).ToString());
        }
示例#4
0
 public void CreateArgumentListWithoutExpressions()
 {
     Assert.AreEqual("()", ArgumentListGenerator.CreateArgumentList().ToString());
 }