Skip to content

fix(analyzers): align RCS1260 single-line check with initializer braces - #1808

Merged
josefpihrt merged 4 commits into
mainfrom
fix/analyzers/rcs1260-omit-when-single-line
Aug 14, 2026
Merged

fix(analyzers): align RCS1260 single-line check with initializer braces#1808
josefpihrt merged 4 commits into
mainfrom
fix/analyzers/rcs1260-omit-when-single-line

Conversation

@josefpihrt

Copy link
Copy Markdown
Collaborator

Summary

  • Use brace span (OpenBraceTokenCloseBraceToken) for omit_when_single_line on initializer expressions, matching enum/anonymous object/switch/pattern checks in the same analyzer.
  • The original false positive ([RCS1260] False Positive #1439) was addressed in Fix analyzer RCS1206 #1685 by switching from expressions.IsSingleLine() to initializer.IsSingleLine(); this aligns the initializer path with the explicit brace-span approach used elsewhere.
  • Add regression tests for multi-line object and collection initializers with a single element and trailing comma.

Fixes #1439

Test plan

  • dotnet test src/Tests/Analyzers.Tests --filter FullyQualifiedName~RCS1260

Made with Cursor

josefpihrt and others added 3 commits August 9, 2026 18:07
Use brace span for omit_when_single_line on initializer expressions,
matching other RCS1260 analyzers. Regression tests for #1439.
Fixes #1439.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

@josefpihrt josefpihrt left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — aligning initializer omit_when_single_line with the brace-span pattern used for enums/anonymous objects/switches is the right consistency fix for #1439.

Comment thread src/Analyzers/CSharp/Analysis/AddOrRemoveTrailingCommaAnalyzer.cs
@josefpihrt
josefpihrt merged commit 7a6f382 into main Aug 14, 2026
1 check passed
@josefpihrt
josefpihrt deleted the fix/analyzers/rcs1260-omit-when-single-line branch August 14, 2026 20:04
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.

[RCS1260] False Positive

1 participant