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)); }