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