Skip to content

Fix RCS0036 for blank lines in records - #1813

Merged
josefpihrt merged 3 commits into
mainfrom
fix/rcs0036-records
Aug 14, 2026
Merged

Fix RCS0036 for blank lines in records#1813
josefpihrt merged 3 commits into
mainfrom
fix/rcs0036-records

Conversation

@josefpihrt

@josefpihrt josefpihrt commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • RCS0036 now visits record declarations, so blank lines between consecutive single-line properties (and other same-kind members) are reported the same way as in classes.
  • The shared BlankLineBetweenDeclarationsAnalyzer registration also covers RCS0009, RCS0010, RCS0012, and RCS0013 inside records.
  • Adds a regression test matching the issue reproduction.

Fixes #1812

Test plan

  • dotnet test Tests/Formatting.Analyzers.Tests --filter "FullyQualifiedName~RCS0036" (8 passed)
  • Confirm the issue reproduction (record with two single-line properties separated by a blank line) reports RCS0036 and the code fix removes the blank line

Josef Pihrt and others added 3 commits August 14, 2026 18:26
RCS0036 already visited classes, structs, and record structs, but never registered RecordDeclaration, so equivalent properties in a record were ignored.

Co-authored-by: Cursor <cursoragent@cursor.com>
A markdown issue link alone does not create a GitHub closing reference.

Co-authored-by: Cursor <cursoragent@cursor.com>
Changelog entries use ([PR](...)) links; tighten the bug-fix skill examples to match.

Co-authored-by: Cursor <cursoragent@cursor.com>
@josefpihrt
josefpihrt merged commit b104db7 into main Aug 14, 2026
17 checks passed
@josefpihrt
josefpihrt deleted the fix/rcs0036-records branch August 14, 2026 17:20
This was referenced Aug 16, 2026
This was referenced Aug 17, 2026
SonnyRR pushed a commit to SonnyRR/stacked-deck-templates that referenced this pull request Aug 18, 2026
Updated [Roslynator.Analyzers](https://github.com/dotnet/roslynator)
from 4.16.0 to 4.16.1.

<details>
<summary>Release notes</summary>

_Sourced from [Roslynator.Analyzers's
releases](https://github.com/dotnet/roslynator/releases)._

## 4.16.1

### Fixed

- Fix analyzer
[RCS1060](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1060)
to not report a file that contains only multiple partial declarations of
the same type ([PR](dotnet/roslynator#1798))
- Fix analyzer
[RCS1231](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1231)
to not suggest `in` for `ref struct` parameters
([#​1725](dotnet/roslynator#1725))
([PR](dotnet/roslynator#1807))
- Fix analyzer
[RCS1260](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1260)
false positive for `omit_when_single_line` on multi-line
object/collection initializers
([#​1439](dotnet/roslynator#1439))
([PR](dotnet/roslynator#1808))
- Fix analyzer
[RCS0036](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0036)
to report blank lines between single-line declarations in records
([PR](dotnet/roslynator#1813))
- Fix analyzer
[RCS1046](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1046)
to report `async void` methods without `Async` suffix
([PR](dotnet/roslynator#1790))
- Fix analyzer
[RCS1265](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1265)
to not report catch clauses with a `when` filter
([PR](dotnet/roslynator#1789))
- Fix analyzer
[RCS0034](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0034)
for types with a primary constructor and multiple constraint clauses
([PR](dotnet/roslynator#1791))
- Fix analyzer
[RCS1231](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1231)
to not report `CancellationToken` in sync methods returning `Task`
([PR](dotnet/roslynator#1802))
- [CLI] Fix GitLab output format to use relative paths, forward slashes,
and 1-based line numbers
([PR](dotnet/roslynator#1792))
- [CLI] Fix `generate-doc` to omit internal interfaces from type
declarations and the Implements section
([PR](dotnet/roslynator#1801))

Commits viewable in [compare
view](dotnet/roslynator@v4.16.0...v4.16.1).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Roslynator.Analyzers&package-manager=nuget&previous-version=4.16.0&new-version=4.16.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RCS0036 does not report blank lines between single-line properties in records

1 participant