Skip to content

CA1822 suggests making user-defined compound operators static #51644

@Windows10CE

Description

@Windows10CE

Describe the bug

CA1822 (member does not access instance data and can be made static) is triggered on C#14 user-defined compound operators, despite it not being legal for these methods to be static.

To Reproduce

class C
{
    public void operator +=(int a) {}
}

Further technical details

details of dotnet --info

.NET SDK: Version: 10.0.100-rc.2.25502.107 Commit: 89c8f6a112 Workload version: 10.0.100-manifests.702553ab MSBuild version: 18.0.0-preview-25502-107+89c8f6a11

Runtime Environment:
OS Name: arch
OS Version:
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/10.0.100-rc.2.25502.107/

.NET workloads installed:
There are no installed workloads to display.
Configured to use workload sets when installing new manifests.
No workload sets are installed. Run "dotnet workload restore" to install a workload set.

Host:
Version: 10.0.0-rc.2.25502.107
Architecture: x64
Commit: 89c8f6a112

.NET SDKs installed:
6.0.428 [/usr/share/dotnet/sdk]
8.0.415 [/usr/share/dotnet/sdk]
9.0.305 [/usr/share/dotnet/sdk]
10.0.100-rc.2.25502.107 [/usr/share/dotnet/sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 8.0.21 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.9 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 10.0.0-rc.2.25502.107 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.36 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.21 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.9 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 10.0.0-rc.2.25502.107 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
None

Environment variables:
DOTNET_BUNDLE_EXTRACT_BASE_DIR [/home/aaronr/.cache/dotnet_bundle_extract]
DOTNET_CLI_TELEMETRY_OPTOUT [1]
DOTNET_ROOT [/usr/share/dotnet]
DOTNET_TOOLS_PATH [/home/aaronr/.dotnet/tools]

global.json file:
Not found

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions