Skip to content

Commit c5b77c2

Browse files
authored
Fix RCS1213 (#1343)
1 parent 84cd2c9 commit c5b77c2

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2727
### Fixed
2828

2929
- Fix analyzer [RCS1262](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1262) ([PR](https://github.com/dotnet/roslynator/pull/1339))
30+
- Fix analyzer [RCS1213](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1213) ([PR](https://github.com/dotnet/roslynator/pull/1343))
3031

3132
## [4.7.0] - 2023-12-03
3233

src/Analyzers/CSharp/Analysis/UnusedMember/UnusedMemberWalker.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,8 @@ public override void VisitTypeParameterList(TypeParameterListSyntax node)
202202

203203
public override void VisitBaseList(BaseListSyntax node)
204204
{
205-
Debug.Fail($"{nameof(UnusedMemberWalker)}.{nameof(VisitBaseList)}");
205+
if (node is not null)
206+
base.VisitBaseList(node);
206207
}
207208

208209
public override void VisitTypeParameterConstraintClause(TypeParameterConstraintClauseSyntax node)
@@ -230,26 +231,30 @@ public override void VisitClassDeclaration(ClassDeclarationSyntax node)
230231
{
231232
VisitAttributeLists(node.AttributeLists);
232233
VisitParameterList(node.ParameterList);
234+
VisitBaseList(node.BaseList);
233235
VisitMembers(node.Members);
234236
}
235237

236238
public override void VisitInterfaceDeclaration(InterfaceDeclarationSyntax node)
237239
{
238240
VisitAttributeLists(node.AttributeLists);
239241
VisitParameterList(node.ParameterList);
242+
VisitBaseList(node.BaseList);
240243
VisitMembers(node.Members);
241244
}
242245

243246
public override void VisitStructDeclaration(StructDeclarationSyntax node)
244247
{
245248
VisitAttributeLists(node.AttributeLists);
246249
VisitParameterList(node.ParameterList);
250+
VisitBaseList(node.BaseList);
247251
VisitMembers(node.Members);
248252
}
249253

250254
public override void VisitRecordDeclaration(RecordDeclarationSyntax node)
251255
{
252256
VisitAttributeLists(node.AttributeLists);
257+
VisitBaseList(node.BaseList);
253258
VisitMembers(node.Members);
254259
}
255260

src/Tests/Analyzers.Tests/RCS1213RemoveUnusedMemberDeclarationTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,4 +408,23 @@ public MyAttribute(string s)
408408
}
409409
", options: Options.AddAllowedCompilerDiagnosticId("CS9113"));
410410
}
411+
412+
[Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.RemoveUnusedMemberDeclaration)]
413+
public async Task TestNoDiagnostic_BaseList()
414+
{
415+
await VerifyNoDiagnosticAsync(@"
416+
using System;
417+
418+
internal abstract class B(Action action)
419+
{
420+
public Action Action { get; } = action;
421+
}
422+
423+
internal sealed class C() : B(Do)
424+
{
425+
private static void Do()
426+
{
427+
}
428+
}");
429+
}
411430
}

0 commit comments

Comments
 (0)