private async Task<Document> MakePrivateAsync(Document document, PropertyDeclarationSyntax property, CancellationToken cancellationToken)
        {
            var newPropertyDeclaration = 
                SyntaxFactory.PropertyDeclaration(property.Type, property.Identifier)
                .AddModifiers(SyntaxFactory.Token(SyntaxTriviaList.Empty, SyntaxKind.PrivateKeyword, SyntaxTriviaList.Create(SyntaxFactory.Space)))
                .WithLeadingTrivia(property.GetLeadingTrivia())
                .WithAccessorList(property.AccessorList)
                ;

            var root = await document.GetSyntaxRootAsync();
            var newRoot = root.ReplaceNode(property, newPropertyDeclaration);

            return document.WithSyntaxRoot(newRoot);
        }
        private async Task<Document> IncorrectSigSuppDiagAsync(Document document, PropertyDeclarationSyntax declaration, CancellationToken c)
        {
            SyntaxGenerator generator = SyntaxGenerator.GetGenerator(document);

            var type = generator.IdentifierName("ImmutableArray<DiagnosticDescriptor>");
            var getAccessorStatements = new SyntaxList<SyntaxNode>();
            foreach (var accessor in declaration.AccessorList.Accessors)
            {
                if (accessor.IsKind(SyntaxKind.GetAccessorDeclaration))
                {
                    getAccessorStatements = accessor.Body.Statements;
                    break;
                }
            }

            var newPropertyDecl = generator.PropertyDeclaration("SupportedDiagnostics", type, accessibility: Accessibility.Public, modifiers: DeclarationModifiers.Override, getAccessorStatements: getAccessorStatements).WithLeadingTrivia(declaration.GetLeadingTrivia()).WithTrailingTrivia(declaration.GetTrailingTrivia());
            newPropertyDecl = newPropertyDecl.RemoveNode((newPropertyDecl as PropertyDeclarationSyntax).AccessorList.Accessors[1], 0);
            
            return await ReplaceNode(declaration, newPropertyDecl, document);
        }
        private static async Task<Document> ReplaceWithExpressionBodiedMember(Document document, PropertyDeclarationSyntax declaration, CancellationToken cancellationToken)
        {
            SyntaxTriviaList leadingTrivia;
            var expression = GetExpression(declaration.AccessorList, out leadingTrivia);

            var declarationTrivia = declaration.GetLeadingTrivia();
            declarationTrivia = declarationTrivia.AddRange(leadingTrivia);

            var newDeclaration = declaration
                .WithLeadingTrivia(declarationTrivia)
                .WithExpressionBody(SyntaxFactory.ArrowExpressionClause(expression))
                .WithAccessorList(null)
                .WithSemicolonToken(GetSemicolon(declaration.AccessorList))
                .WithAdditionalAnnotations(Formatter.Annotation);

            var root = await document.GetSyntaxRootAsync(cancellationToken);
            var newRoot = root.ReplaceNode(declaration, newDeclaration);

            return document.WithSyntaxRoot(newRoot);
        }