private static async Task <Document> ApplyInlineSingleLineAsync(CodeFixContext context, InvocationExpressionSyntax invocation, CancellationToken cancellationToken)
        {
            var editor = await DocumentEditor.CreateAsync(context.Document, cancellationToken)
                         .ConfigureAwait(false);

            var semanticModel     = editor.SemanticModel;
            var method            = (IMethodSymbol)semanticModel.GetSymbolSafe(invocation.Expression, cancellationToken);
            var methodDeclaration = (MethodDeclarationSyntax)method.DeclaringSyntaxReferences[0].GetSyntax(cancellationToken);
            var expression        = methodDeclaration.ExpressionBody?.Expression ??
                                    ((ReturnStatementSyntax)methodDeclaration.Body.Statements[0]).Expression;

            if (invocation.ArgumentList?.Arguments.Count == 1 &&
                semanticModel.GetSymbolSafe(invocation.ArgumentList.Arguments[0].Expression, cancellationToken) is IParameterSymbol parameter)
            {
                expression = Rename.Parameter(method.Parameters[0], parameter, expression, semanticModel, cancellationToken);
                editor.ReplaceNode(
                    invocation,
                    expression.WithLeadingTrivia(invocation.Expression.GetLeadingTrivia()));
                editor.RemoveNode(methodDeclaration);
                return(editor.GetChangedDocument());
            }

            return(editor.OriginalDocument);
        }