public Task <SyntaxNode> ReplaceAsync(SyntaxNode memberDeclaration, CancellationToken cancellationToken) { var editor = new SyntaxEditor(memberDeclaration, CSharpSyntaxGenerator.Instance); foreach (var child in memberDeclaration.DescendantNodes()) { if (child is LocalDeclarationStatementSyntax localDeclarationStatement && localDeclarationStatement.Declaration.Variables.Any(IsDiscardDeclaration)) { RemoveDiscardHelper.ProcessDeclarationStatement(localDeclarationStatement, editor); }
public Task <SyntaxNode> ReplaceAsync( SyntaxNode memberDeclaration, SemanticModel semanticModel, Workspace workspace, CancellationToken cancellationToken ) { var editor = new SyntaxEditor(memberDeclaration, workspace); foreach (var child in memberDeclaration.DescendantNodes()) { switch (child) { case LocalDeclarationStatementSyntax localDeclarationStatement: if ( localDeclarationStatement.Declaration.Variables.Any( IsDiscardDeclaration ) ) { RemoveDiscardHelper.ProcessDeclarationStatement( localDeclarationStatement, editor ); } break; case CatchDeclarationSyntax catchDeclaration: if (IsDiscardDeclaration(catchDeclaration)) { // "catch (Exception _)" => "catch (Exception)" editor.ReplaceNode( catchDeclaration, catchDeclaration.WithIdentifier(default) ); } break;