예제 #1
0
        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);
                }
예제 #2
0
        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;