Skip to content

Commit

Permalink
Improve code fix for CS0621
Browse files Browse the repository at this point in the history
  • Loading branch information
josefpihrt committed Aug 13, 2021
1 parent f5a37f0 commit 6aab001
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/CodeFixes/CSharp/CodeFixes/ModifiersCodeFixProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Roslynator.CodeFixes;
using Roslynator.CSharp.Syntax;

namespace Roslynator.CSharp.CodeFixes
{
Expand Down Expand Up @@ -218,7 +219,12 @@ public override async Task RegisterCodeFixesAsync(CodeFixContext context)
case CompilerDiagnosticIdentifiers.VirtualOrAbstractMembersCannotBePrivate:
{
if (Settings.IsEnabled(diagnostic.Id, CodeFixIdentifiers.RemoveVirtualModifier))
ModifiersCodeFixRegistrator.RemoveModifier(context, diagnostic, node, SyntaxKind.VirtualKeyword, additionalKey: nameof(SyntaxKind.VirtualKeyword));
{
ModifierListInfo modifierInfo = SyntaxInfo.ModifierListInfo(node);

if (modifierInfo.IsVirtual)
ModifiersCodeFixRegistrator.RemoveModifier(context, diagnostic, node, SyntaxKind.VirtualKeyword, additionalKey: nameof(SyntaxKind.VirtualKeyword));
}

if (Settings.IsEnabled(diagnostic.Id, CodeFixIdentifiers.ChangeAccessibility))
ModifiersCodeFixRegistrator.ChangeAccessibility(context, diagnostic, node, _publicOrInternalOrProtected);
Expand Down
1 change: 1 addition & 0 deletions src/CodeFixes/CodeFixes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,7 @@
<CodeFix Id="RCF0101" Identifier="RemoveVirtualModifier" Title="Remove 'virtual' modifier">
<FixableDiagnosticIds>
<Id>CS0549</Id>
<Id>CS0621</Id>
</FixableDiagnosticIds>
</CodeFix>
<CodeFix Id="RCF0102" Identifier="MakeContainingClassUnsealed" Title="Make containing class unsealed">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,17 @@ private void M()
}
", equivalenceKey: EquivalenceKey.Create(DiagnosticId, nameof(SyntaxKind.VirtualKeyword)));
}

[Fact, Trait(Traits.CodeFix, CompilerDiagnosticIdentifiers.VirtualOrAbstractMembersCannotBePrivate)]
public async Task Test_RemoveAbstractModifier()
{
await VerifyNoFixAsync(@"
abstract class C
{
abstract void M();
}
",
equivalenceKey: EquivalenceKey.Create(DiagnosticId, nameof(SyntaxKind.VirtualKeyword)));
}
}
}

0 comments on commit 6aab001

Please sign in to comment.