-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Area-Microsoft.CodeAnalysis.NetAnalyzersuntriagedRequest triage from a team memberRequest triage from a team member
Description
Code:
using System.Runtime.Versioning;
public class C {
[SupportedOSPlatform ("macos12.0")]
public void M ()
{
Console.WriteLine (E1.A); // no warning
Console.WriteLine (E1.B); // no warning
Console.WriteLine (E1.C); // warning
Console.WriteLine (E2.A); // warning
Console.WriteLine (E2.B); // warning
Console.WriteLine (E2.C); // warning
}
}
[SupportedOSPlatform ("macos")]
public enum E1 : ulong {
[SupportedOSPlatform ("macos")]
[UnsupportedOSPlatform ("macos11.0", "Use 'Z' instead.")]
A,
[SupportedOSPlatform ("macos10.0")]
[UnsupportedOSPlatform ("macos11.0", "Use 'Z' instead.")]
B,
[UnsupportedOSPlatform ("macos11.0", "Use 'Z' instead.")]
C,
Z,
}
// No SupportedOSPlatform on the enum
public enum E2 : ulong {
[SupportedOSPlatform ("macos")]
[UnsupportedOSPlatform ("macos11.0", "Use 'Z' instead.")]
A,
[SupportedOSPlatform ("macos10.0")]
[UnsupportedOSPlatform ("macos11.0", "Use 'Z' instead.")]
B,
[UnsupportedOSPlatform ("macos11.0", "Use 'Z' instead.")]
C,
Z,
}Build output:
Class1.cs(11,28): warning CA1416: This call site is reachable on: 'macOS/OSX' 12.0 and later. 'E2.A' is unsupported on: 'macOS/OSX' 11.0 and later (Use 'Z' instead.).
Class1.cs(13,28): warning CA1416: This call site is reachable on: 'macOS/OSX' 12.0 and later. 'E2.C' is unsupported on: 'macOS/OSX' 11.0 and later (Use 'Z' instead.).
Class1.cs(9,28): warning CA1416: This call site is reachable on: 'macOS/OSX' 12.0 and later. 'E1.C' is unsupported on: 'macOS/OSX' 11.0 and later (Use 'Z' instead.).
Class1.cs(12,28): warning CA1416: This call site is reachable on: 'macOS/OSX' 12.0 and later. 'E2.B' is unsupported on: 'macOS/OSX' 11.0 and later (Use 'Z' instead.).
I would expect E1.A and E1.B to raise warnings just like E2.A and E2.B does.
Complete test project: macoslibrary-8f14b1a.zip
Binlog:
Version:
$ dotnet --info
.NET SDK:
Version: 10.0.100-rc.1.25451.107
Commit: 2db1f5ee2b
Workload version: 10.0.100-rc.1.25458.2
MSBuild version: 17.15.0-preview-25451-107+2db1f5ee2
Runtime Environment:
OS Name: Mac OS X
OS Version: 15.7
OS Platform: Darwin
RID: osx-arm64
Base Path: /usr/local/share/dotnet/sdk/10.0.100-rc.1.25451.107/
.NET workloads installed:
[macos]
Installation Source: SDK 10.0.100-rc.1
Manifest Version: 15.5.10727-net10-rc.1/10.0.100-rc.1
Manifest Path: /usr/local/share/dotnet/sdk-manifests/10.0.100-rc.1/microsoft.net.sdk.macos/15.5.10727-net10-rc.1/WorkloadManifest.json
Install Type: FileBased
[maui-ios]
Installation Source: SDK 10.0.100-rc.1
Manifest Version: 10.0.0-rc.1.25452.6/10.0.100-rc.1
Manifest Path: /usr/local/share/dotnet/sdk-manifests/10.0.100-rc.1/microsoft.net.sdk.maui/10.0.0-rc.1.25452.6/WorkloadManifest.json
Install Type: FileBased
[ios]
Installation Source: SDK 10.0.100-rc.1
Manifest Version: 18.5.10727-net10-rc.1/10.0.100-rc.1
Manifest Path: /usr/local/share/dotnet/sdk-manifests/10.0.100-rc.1/microsoft.net.sdk.ios/18.5.10727-net10-rc.1/WorkloadManifest.json
Install Type: FileBased
[maccatalyst]
Installation Source: SDK 10.0.100-rc.1
Manifest Version: 18.5.10727-net10-rc.1/10.0.100-rc.1
Manifest Path: /usr/local/share/dotnet/sdk-manifests/10.0.100-rc.1/microsoft.net.sdk.maccatalyst/18.5.10727-net10-rc.1/WorkloadManifest.json
Install Type: FileBased
Configured to use workload sets when installing new manifests.
Host:
Version: 10.0.0-rc.1.25451.107
Architecture: arm64
Commit: 2db1f5ee2b
.NET SDKs installed:
6.0.425 [/usr/local/share/dotnet/sdk]
7.0.410 [/usr/local/share/dotnet/sdk]
8.0.304 [/usr/local/share/dotnet/sdk]
8.0.402 [/usr/local/share/dotnet/sdk]
9.0.100 [/usr/local/share/dotnet/sdk]
9.0.102 [/usr/local/share/dotnet/sdk]
9.0.103 [/usr/local/share/dotnet/sdk]
9.0.106 [/usr/local/share/dotnet/sdk]
9.0.109 [/usr/local/share/dotnet/sdk]
9.0.110 [/usr/local/share/dotnet/sdk]
9.0.203 [/usr/local/share/dotnet/sdk]
9.0.205 [/usr/local/share/dotnet/sdk]
9.0.300 [/usr/local/share/dotnet/sdk]
9.0.305 [/usr/local/share/dotnet/sdk]
10.0.100-preview.6.25358.103 [/usr/local/share/dotnet/sdk]
10.0.100-rc.1.25451.107 [/usr/local/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.33 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.0-rc.2.24474.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.7 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.9 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 10.0.0-preview.6.25358.103 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 10.0.0-rc.1.25451.107 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.33 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.36 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.7 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.9 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 10.0.0-preview.6.25358.103 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 10.0.0-rc.1.25451.107 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
x64 [/usr/local/share/dotnet/x64]
registered at [/etc/dotnet/install_location_x64]
Environment variables:
DOTNET_CLI_TELEMETRY_OPTOUT [1]
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area-Microsoft.CodeAnalysis.NetAnalyzersuntriagedRequest triage from a team memberRequest triage from a team member