Skip to content

Commit 9f123b6

Browse files
authored
Fix analyzer RCS0036 (#1466)
1 parent bc61073 commit 9f123b6

3 files changed

Lines changed: 37 additions & 2 deletions

File tree

ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313
- Fix analyzer [RCS1085](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1085) ([PR](https://github.com/dotnet/roslynator/pull/1461))
1414
- Fix analyzer [RCS1077](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1077) ([PR](https://github.com/dotnet/roslynator/pull/1463))
1515
- [CLI] Fix `roslynator analyze --include/--exclude` ([PR](https://github.com/dotnet/roslynator/pull/1459))
16+
- Fix analyzer [RCS0036](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0036) ([PR](https://github.com/dotnet/roslynator/pull/1466))
1617

1718
## [4.12.2] - 2024-04-23
1819

src/Formatting.Analyzers/CSharp/BlankLineBetweenDeclarationsAnalyzer.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,11 @@ private static void Analyze(SyntaxNodeAnalysisContext context, SyntaxList<Member
118118
{
119119
if (block.Kind == TriviaBlockKind.BlankLine)
120120
{
121-
if (MemberKindEquals(previousMember, member))
121+
if (!block.ContainsDocumentationComment
122+
&& MemberKindEquals(previousMember, member))
123+
{
122124
ReportDiagnostic(context, DiagnosticRules.RemoveBlankLineBetweenSingleLineDeclarationsOfSameKind, block);
125+
}
123126
}
124127
else
125128
{
@@ -201,7 +204,8 @@ private static void AnalyzeEnumDeclaration(SyntaxNodeAnalysisContext context)
201204
if ((isSingleLine ?? (isSingleLine = tree.IsSingleLineSpan(member.Span, cancellationToken)).Value)
202205
&& (isPreviousSingleLine ?? tree.IsSingleLineSpan(members[i - 1].Span, cancellationToken)))
203206
{
204-
if (block.Kind == TriviaBlockKind.BlankLine)
207+
if (!block.ContainsDocumentationComment
208+
&& block.Kind == TriviaBlockKind.BlankLine)
205209
{
206210
ReportDiagnostic(context, DiagnosticRules.RemoveBlankLineBetweenSingleLineDeclarationsOfSameKind, block);
207211
}

src/Tests/Formatting.Analyzers.Tests/RCS0036RemoveBlankLineBetweenSingleLineDeclarationsOfSameKindTests.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,36 @@ class C
9797
9898
string F = null;
9999
}
100+
");
101+
}
102+
103+
[Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.RemoveBlankLineBetweenSingleLineDeclarationsOfSameKind)]
104+
public async Task TestNoDiagnostic_DocCommentBetweenMembers()
105+
{
106+
await VerifyNoDiagnosticAsync(@"
107+
class C
108+
{
109+
string P1 { get; set; }
110+
111+
/// <summary>
112+
/// </summary>
113+
string P2 { get; set; }
114+
}
115+
");
116+
}
117+
118+
[Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.RemoveBlankLineBetweenSingleLineDeclarationsOfSameKind)]
119+
public async Task TestNoDiagnostic_DocCommentBetweenEnumMembers()
120+
{
121+
await VerifyNoDiagnosticAsync(@"
122+
enum C
123+
{
124+
A,
125+
126+
/// <summary>
127+
/// </summary>
128+
B,
129+
}
100130
");
101131
}
102132
}

0 commit comments

Comments
 (0)