private static void AddEdits( SyntaxEditor editor, SemanticModel semanticModel, Diagnostic diagnostic, CancellationToken cancellationToken) { var declarationLocation = diagnostic.AdditionalLocations[0]; var originalDeclaration = (LambdaExpressionSyntax)declarationLocation.FindNode(getInnermostNodeForTie: true, cancellationToken); editor.ReplaceNode( originalDeclaration, (current, _) => UseExpressionBodyForLambdaCodeActionHelpers.Update(semanticModel, originalDeclaration, (LambdaExpressionSyntax)current)); }
private static async Task <Document> UpdateDocumentAsync( Document document, SyntaxNode root, LambdaExpressionSyntax declaration, CancellationToken cancellationToken) { var semanticModel = await document.GetRequiredSemanticModelAsync(cancellationToken).ConfigureAwait(false); // We're only replacing a single declaration in the refactoring. So pass 'declaration' // as both the 'original' and 'current' declaration. var updatedDeclaration = UseExpressionBodyForLambdaCodeActionHelpers.Update(semanticModel, declaration, declaration); var newRoot = root.ReplaceNode(declaration, updatedDeclaration); return(document.WithSyntaxRoot(newRoot)); }