Skip to content

Commit fb50b56

Browse files
Use struct tuple instead of reference tuple for pair ordering (#18513)
1 parent ce2d456 commit fb50b56

File tree

4 files changed

+6
-7
lines changed

4 files changed

+6
-7
lines changed

src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,8 @@ type ReqdItem =
330330

331331
let reqdItemOrder =
332332
let rep = function
333-
| ReqdSubEnv v -> true, v
334-
| ReqdVal v -> false, v
333+
| ReqdSubEnv v -> struct (true, v)
334+
| ReqdVal v -> struct (false, v)
335335

336336
Order.orderOn rep (Pair.order (Bool.order, valOrder))
337337

src/Compiler/Utilities/lib.fs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,11 @@ module Int64 =
5959

6060
module Pair =
6161
let order (compare1: IComparer<'T1>, compare2: IComparer<'T2>) =
62-
{ new IComparer<'T1 * 'T2> with
62+
{ new IComparer<struct ('T1 * 'T2)> with
6363
member _.Compare((a1, a2), (aa1, aa2)) =
6464
let res1 = compare1.Compare (a1, aa1)
6565
if res1 <> 0 then res1 else compare2.Compare (a2, aa2) }
6666

67-
6867
type NameSet = Zset<string>
6968

7069
module NameSet =

src/Compiler/Utilities/lib.fsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ module Int64 =
5252
val order: IComparer<int64>
5353

5454
module Pair =
55-
val order: compare1: IComparer<'T1> * compare2: IComparer<'T2> -> IComparer<'T1 * 'T2>
55+
val order: compare1: IComparer<'T1> * compare2: IComparer<'T2> -> IComparer<struct ('T1 * 'T2)>
5656

5757
type NameSet = Zset<string>
5858

src/Compiler/Utilities/range.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ module Range =
449449

450450
let posOrder =
451451
let pairOrder = Pair.order (Int32.order, Int32.order)
452-
let lineAndColumn = fun (p: pos) -> p.Line, p.Column
452+
let lineAndColumn = fun (p: pos) -> struct (p.Line, p.Column)
453453

454454
{ new IComparer<pos> with
455455
member _.Compare(x, xx) =
@@ -458,7 +458,7 @@ module Range =
458458

459459
let rangeOrder =
460460
let tripleOrder = Pair.order (String.order, Pair.order (posOrder, posOrder))
461-
let fileLineColumn = fun (r: range) -> r.FileName, (r.Start, r.End)
461+
let fileLineColumn = fun (r: range) -> struct (r.FileName, struct (r.Start, r.End))
462462

463463
{ new IComparer<range> with
464464
member _.Compare(x, xx) =

0 commit comments

Comments
 (0)