From ada061f93d3c6e7e0006827129c9531725ed7416 Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Sun, 27 Apr 2025 16:25:06 -0400 Subject: [PATCH] Use struct tuple instead of reference tuple for pair ordering --- src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs | 4 ++-- src/Compiler/Utilities/lib.fs | 3 +-- src/Compiler/Utilities/lib.fsi | 2 +- src/Compiler/Utilities/range.fs | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs b/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs index f03db8f5e6f..3007671d78b 100644 --- a/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs +++ b/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs @@ -330,8 +330,8 @@ type ReqdItem = let reqdItemOrder = let rep = function - | ReqdSubEnv v -> true, v - | ReqdVal v -> false, v + | ReqdSubEnv v -> struct (true, v) + | ReqdVal v -> struct (false, v) Order.orderOn rep (Pair.order (Bool.order, valOrder)) diff --git a/src/Compiler/Utilities/lib.fs b/src/Compiler/Utilities/lib.fs index 609245f636e..8acde600ec4 100755 --- a/src/Compiler/Utilities/lib.fs +++ b/src/Compiler/Utilities/lib.fs @@ -59,12 +59,11 @@ module Int64 = module Pair = let order (compare1: IComparer<'T1>, compare2: IComparer<'T2>) = - { new IComparer<'T1 * 'T2> with + { new IComparer with member _.Compare((a1, a2), (aa1, aa2)) = let res1 = compare1.Compare (a1, aa1) if res1 <> 0 then res1 else compare2.Compare (a2, aa2) } - type NameSet = Zset module NameSet = diff --git a/src/Compiler/Utilities/lib.fsi b/src/Compiler/Utilities/lib.fsi index 1dfd610d55a..5d82031642f 100644 --- a/src/Compiler/Utilities/lib.fsi +++ b/src/Compiler/Utilities/lib.fsi @@ -52,7 +52,7 @@ module Int64 = val order: IComparer module Pair = - val order: compare1: IComparer<'T1> * compare2: IComparer<'T2> -> IComparer<'T1 * 'T2> + val order: compare1: IComparer<'T1> * compare2: IComparer<'T2> -> IComparer type NameSet = Zset diff --git a/src/Compiler/Utilities/range.fs b/src/Compiler/Utilities/range.fs index 5e13752df0b..0857d7c4d7c 100755 --- a/src/Compiler/Utilities/range.fs +++ b/src/Compiler/Utilities/range.fs @@ -449,7 +449,7 @@ module Range = let posOrder = let pairOrder = Pair.order (Int32.order, Int32.order) - let lineAndColumn = fun (p: pos) -> p.Line, p.Column + let lineAndColumn = fun (p: pos) -> struct (p.Line, p.Column) { new IComparer with member _.Compare(x, xx) = @@ -458,7 +458,7 @@ module Range = let rangeOrder = let tripleOrder = Pair.order (String.order, Pair.order (posOrder, posOrder)) - let fileLineColumn = fun (r: range) -> r.FileName, (r.Start, r.End) + let fileLineColumn = fun (r: range) -> struct (r.FileName, struct (r.Start, r.End)) { new IComparer with member _.Compare(x, xx) =