From 5a291c7adba61aaf26acab09f025ad298471bbc9 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Fri, 19 Sep 2025 17:31:45 +0100 Subject: [PATCH] Update comments for CA1825 suppression Update comments for CA1825: Avoid zero-length array allocations It is not correct that `Array.Empty()` doesn't exist in all configurations, the API is available from .NET Standard 1.3. --- .../System/Collections/Immutable/ImmutableArray_1.Minimal.cs | 4 +--- .../src/System/Diagnostics/Activity.cs | 4 ++-- .../src/System/Threading/ExecutionContext.cs | 2 +- .../src/Internal/ImmutableArray.cs | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs index 9ef57a400ed50c..48dfacfe063eb6 100644 --- a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs +++ b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs @@ -38,9 +38,7 @@ public partial struct ImmutableArray : IEnumerable, IEquatable /// An empty (initialized) instance of . /// -#pragma warning disable CA1825 - // Array.Empty() doesn't exist in all configurations - // Switching to Array.Empty also has a non-negligible impact on the working set memory +#pragma warning disable CA1825 // avoid the extra generic instantiation for Array.Empty() public static readonly ImmutableArray Empty = new ImmutableArray(new T[0]); #pragma warning restore CA1825 diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs index 65274673caf8c5..ff56580b155f22 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs @@ -55,12 +55,12 @@ internal ActivityChangedEventArgs(Activity? previous, Activity? current) /// public partial class Activity : IDisposable { -#pragma warning disable CA1825 // Array.Empty() doesn't exist in all configurations +#pragma warning disable CA1825 // avoid the extra generic instantiation for Array.Empty() private static readonly IEnumerable> s_emptyBaggageTags = new KeyValuePair[0]; private static readonly IEnumerable> s_emptyTagObjects = new KeyValuePair[0]; +#pragma warning restore CA1825 private static readonly IEnumerable s_emptyLinks = new DiagLinkedList(); private static readonly IEnumerable s_emptyEvents = new DiagLinkedList(); -#pragma warning restore CA1825 private static readonly ActivitySource s_defaultSource = new ActivitySource(string.Empty); private static readonly AsyncLocal s_current = new AsyncLocal(); diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs index affc292913fcf5..e160e0d748956c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs @@ -85,7 +85,7 @@ public void GetObjectData(SerializationInfo info, StreamingContext context) if (m_localValues == null || AsyncLocalValueMap.IsEmpty(m_localValues)) { -#pragma warning disable CA1825, IDE0300 // Avoid unnecessary zero-length array allocations +#pragma warning disable CA1825, IDE0300 // avoid the extra generic instantiation for Array.Empty() return isFlowSuppressed ? (s_defaultFlowSuppressed ??= new ExecutionContext(AsyncLocalValueMap.Empty, new IAsyncLocal[0], isFlowSuppressed: true)) : null; // implies the default context diff --git a/src/libraries/System.Threading.Tasks.Dataflow/src/Internal/ImmutableArray.cs b/src/libraries/System.Threading.Tasks.Dataflow/src/Internal/ImmutableArray.cs index 432ec82566dc55..c2ac5e6117da0c 100644 --- a/src/libraries/System.Threading.Tasks.Dataflow/src/Internal/ImmutableArray.cs +++ b/src/libraries/System.Threading.Tasks.Dataflow/src/Internal/ImmutableArray.cs @@ -25,7 +25,7 @@ namespace System.Threading.Tasks.Dataflow.Internal internal readonly struct ImmutableArray { /// An empty array. -#pragma warning disable CA1825 // Array.Empty() doesn't exist in all configurations +#pragma warning disable CA1825 // avoid the extra generic instantiation for Array.Empty() private static readonly ImmutableArray s_empty = new ImmutableArray(new T[0]); #pragma warning restore CA1825 /// The immutable data in this array instance.