Skip to content

fix(analyzers): report RCS1046 for async void methods - #1790

Merged
josefpihrt merged 5 commits into
mainfrom
fix/analyzers/rcs1046-async-void
Aug 8, 2026
Merged

fix(analyzers): report RCS1046 for async void methods#1790
josefpihrt merged 5 commits into
mainfrom
fix/analyzers/rcs1046-async-void

Conversation

@josefpihrt

Copy link
Copy Markdown
Collaborator

Summary

  • RCS1046 now reports async void methods whose names do not end with Async
  • Added test covering async void Foo()

Fixes #1770

Test plan

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

Made with Cursor

josefpihrt and others added 5 commits August 8, 2026 21:14
Async methods without the Async suffix were only reported when the
return type was awaitable, so async void methods were skipped.

Fixes #1770

Co-authored-by: Cursor <cursoragent@cursor.com>
@josefpihrt
josefpihrt merged commit 637c9c1 into main Aug 8, 2026
17 checks passed
@josefpihrt
josefpihrt deleted the fix/analyzers/rcs1046-async-void branch August 8, 2026 19:52
This was referenced Aug 16, 2026
This was referenced Aug 19, 2026
vdolek pushed a commit to EvilBrainsTechnology/EvilCase that referenced this pull request Aug 20, 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>

Updated
[Roslynator.CodeAnalysis.Analyzers](https://github.com/dotnet/roslynator)
from 4.16.0 to 4.16.1.

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

_Sourced from [Roslynator.CodeAnalysis.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>

Updated
[Roslynator.Formatting.Analyzers](https://github.com/dotnet/roslynator)
from 4.16.0 to 4.16.1.

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

_Sourced from [Roslynator.Formatting.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 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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</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.

RCS1046 is not reported for async void methods

1 participant