Skip to content

Commit 3fd7e02

Browse files
authored
(132084216) Make AnySortComparator.== not infinitely recursive (swiftlang#755)
* (132084216) Make AnySortComparator.== not infinitely recursive * Fix build failures
1 parent 590caaa commit 3fd7e02

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

Sources/FoundationEssentials/SortComparator.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ package struct AnySortComparator: SortComparator, Sendable {
133133
return l == rr
134134
}
135135

136-
return compare(lhs, rhs)
136+
return compare(lhs._base, rhs._base)
137137
}
138138
}
139139

Tests/FoundationEssentialsTests/SortComparatorTests.swift

+13-1
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,17 @@ class SortComparatorTests: XCTestCase {
5050
XCTAssertEqual(
5151
compareOptions.compare("test2", "test005"),
5252
"test2".compare("test005", options: [.numeric]))
53-
}
53+
}
54+
55+
func testAnySortComparatorEquality() {
56+
let a: ComparableComparator<Int> = ComparableComparator<Int>()
57+
let b: ComparableComparator<Int> = ComparableComparator<Int>(order: .reverse)
58+
let c: ComparableComparator<Double> = ComparableComparator<Double>()
59+
XCTAssertEqual(AnySortComparator(a), AnySortComparator(a))
60+
XCTAssertEqual(AnySortComparator(b), AnySortComparator(b))
61+
XCTAssertEqual(AnySortComparator(c), AnySortComparator(c))
62+
XCTAssertNotEqual(AnySortComparator(a), AnySortComparator(b))
63+
XCTAssertNotEqual(AnySortComparator(b), AnySortComparator(c))
64+
XCTAssertNotEqual(AnySortComparator(a), AnySortComparator(c))
65+
}
5466
}

0 commit comments

Comments
 (0)