From ed7701c42c00d70cd79f583a5cddc73bb3099037 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Jun 2025 14:50:53 +0000 Subject: [PATCH 1/3] Initial plan for issue From dc45d01ce68654aef242f89b452ec58f2050bf00 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:06:17 +0000 Subject: [PATCH 2/3] Remove ActivityDisposable conditional directives and replace with System.IDisposable | null Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com> --- src/Compiler/Utilities/Activity.fs | 6 +++--- src/Compiler/Utilities/Activity.fsi | 6 +++--- src/Compiler/Utilities/NullnessShims.fs | 6 +----- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Compiler/Utilities/Activity.fs b/src/Compiler/Utilities/Activity.fs index 121b52cf07f..818d22e6f81 100644 --- a/src/Compiler/Utilities/Activity.fs +++ b/src/Compiler/Utilities/Activity.fs @@ -89,7 +89,7 @@ module internal Activity = let private activitySource = new ActivitySource(ActivityNames.FscSourceName) - let start (name: string) (tags: (string * string) seq) : ActivityDisposable = + let start (name: string) (tags: (string * string) seq) : System.IDisposable | null = let activity = activitySource.CreateActivity(name, ActivityKind.Internal) match activity with @@ -100,7 +100,7 @@ module internal Activity = activity.Start() - let startNoTags (name: string) : ActivityDisposable = activitySource.StartActivity name + let startNoTags (name: string) : System.IDisposable | null = activitySource.StartActivity name let addEventWithTags name (tags: (string * objnull) seq) = match Activity.Current with @@ -127,7 +127,7 @@ module internal Activity = let private profiledSource = new ActivitySource(ActivityNames.ProfiledSourceName) - let startAndMeasureEnvironmentStats (name: string) : ActivityDisposable = profiledSource.StartActivity(name) + let startAndMeasureEnvironmentStats (name: string) : System.IDisposable | null = profiledSource.StartActivity(name) type private GCStats = int[] diff --git a/src/Compiler/Utilities/Activity.fsi b/src/Compiler/Utilities/Activity.fsi index 773c7528869..83d4b2772ec 100644 --- a/src/Compiler/Utilities/Activity.fsi +++ b/src/Compiler/Utilities/Activity.fsi @@ -40,16 +40,16 @@ module internal Activity = module Events = val cacheHit: string - val startNoTags: name: string -> ActivityDisposable + val startNoTags: name: string -> System.IDisposable | null - val start: name: string -> tags: (string * string) seq -> ActivityDisposable + val start: name: string -> tags: (string * string) seq -> System.IDisposable | null val addEvent: name: string -> unit val addEventWithTags: name: string -> tags: (string * objnull) seq -> unit module Profiling = - val startAndMeasureEnvironmentStats: name: string -> ActivityDisposable + val startAndMeasureEnvironmentStats: name: string -> System.IDisposable | null val addConsoleListener: unit -> IDisposable module CsvExport = diff --git a/src/Compiler/Utilities/NullnessShims.fs b/src/Compiler/Utilities/NullnessShims.fs index 848bf650e98..0afe17f4228 100644 --- a/src/Compiler/Utilities/NullnessShims.fs +++ b/src/Compiler/Utilities/NullnessShims.fs @@ -23,11 +23,7 @@ module internal NullnessShims = | _, null -> false | x, y -> nonNullEqualityFunc !!x !!y -#if BUILDING_WITH_LKG - type ActivityDisposable = System.IDisposable -#else - type ActivityDisposable = System.IDisposable | null -#endif + #if NET5_0_OR_GREATER // Argument type for overriding System.Object.Equals(arg) From 1113632e0bcfd779fea37370d8c1d03e3e5e68cd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:11:06 +0000 Subject: [PATCH 3/3] Apply code formatting with Fantomas Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com> --- src/Compiler/Utilities/NullnessShims.fs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Compiler/Utilities/NullnessShims.fs b/src/Compiler/Utilities/NullnessShims.fs index 0afe17f4228..7e96db2f495 100644 --- a/src/Compiler/Utilities/NullnessShims.fs +++ b/src/Compiler/Utilities/NullnessShims.fs @@ -23,8 +23,6 @@ module internal NullnessShims = | _, null -> false | x, y -> nonNullEqualityFunc !!x !!y - - #if NET5_0_OR_GREATER // Argument type for overriding System.Object.Equals(arg) // Desktop frameworks as well as netstandard need plain 'obj' and are not annotated, NET5 and higher can use (obj|null)