private ObjectCreationExpressionSyntax GetNewObjectCreation(
     ObjectCreationExpressionSyntax objectCreation,
     ImmutableArray <ExpressionStatementSyntax> matches)
 {
     return(UseInitializerHelpers.GetNewObjectCreation(
                objectCreation, CreateExpressions(matches)));
 }
        private static SeparatedSyntaxList <ExpressionSyntax> CreateExpressions(
            BaseObjectCreationExpressionSyntax objectCreation,
            ImmutableArray <ExpressionStatementSyntax> matches)
        {
            using var _ = ArrayBuilder <SyntaxNodeOrToken> .GetInstance(out var nodesAndTokens);

            UseInitializerHelpers.AddExistingItems(objectCreation, nodesAndTokens);

            for (var i = 0; i < matches.Length; i++)
            {
                var expressionStatement = matches[i];

                var newExpression = ConvertExpression(expressionStatement.Expression)
                                    .WithoutTrivia()
                                    .WithPrependedLeadingTrivia(expressionStatement.GetLeadingTrivia());

                if (i < matches.Length - 1)
                {
                    nodesAndTokens.Add(newExpression);
                    var commaToken = SyntaxFactory.Token(SyntaxKind.CommaToken)
                                     .WithTriviaFrom(expressionStatement.SemicolonToken);

                    nodesAndTokens.Add(commaToken);
                }
                else
                {
                    newExpression = newExpression.WithTrailingTrivia(
                        expressionStatement.GetTrailingTrivia());
                    nodesAndTokens.Add(newExpression);
                }
            }

            return(SyntaxFactory.SeparatedList <ExpressionSyntax>(nodesAndTokens));
        }