Skip to content

Commit 0572eb9

Browse files
authored
Merge pull request #78857 from Azoy/wordpair-comparable
[stdlib] Add Comparable conformance to WordPair
2 parents 109e208 + d2309d2 commit 0572eb9

File tree

4 files changed

+34
-0
lines changed

4 files changed

+34
-0
lines changed

stdlib/public/Synchronization/Atomics/WordPair.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,16 @@ extension WordPair: Hashable {
183183
}
184184
}
185185

186+
@available(SwiftStdlib 6.2, *)
187+
extension WordPair: Comparable {
188+
@available(SwiftStdlib 6.2, *)
189+
@_alwaysEmitIntoClient
190+
@_transparent
191+
public static func <(lhs: WordPair, rhs: WordPair) -> Bool {
192+
(lhs.first, lhs.second) < (rhs.first, rhs.second)
193+
}
194+
}
195+
186196
@available(SwiftStdlib 6.0, *)
187197
@_unavailableInEmbedded
188198
extension WordPair: CustomStringConvertible {

test/abi/macOS/arm64/synchronization.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,3 +698,6 @@ Added: _$s15Synchronization20AtomicUpdateOrderingV22sequentiallyConsistentACvpZM
698698
Added: _$s15Synchronization20AtomicUpdateOrderingV7relaxedACvpZMV
699699
Added: _$s15Synchronization20AtomicUpdateOrderingV9acquiringACvpZMV
700700
Added: _$s15Synchronization20AtomicUpdateOrderingV9releasingACvpZMV
701+
702+
// WordPair to Comparable conformance
703+
Added: _$s15Synchronization8WordPairVSLAAMc

test/abi/macOS/x86_64/synchronization.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,3 +692,6 @@ Added: _$s15Synchronization20AtomicUpdateOrderingV22sequentiallyConsistentACvpZM
692692
Added: _$s15Synchronization20AtomicUpdateOrderingV7relaxedACvpZMV
693693
Added: _$s15Synchronization20AtomicUpdateOrderingV9acquiringACvpZMV
694694
Added: _$s15Synchronization20AtomicUpdateOrderingV9releasingACvpZMV
695+
696+
// WordPair to Comparable conformance
697+
Added: _$s15Synchronization8WordPairVSLAAMc

test/stdlib/Synchronization/Atomics/WordPair.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,22 @@ suite.test("basics") {
4949

5050
} // if #available(SwiftStdlib 6.0, *)
5151

52+
if #available(SwiftStdlib 6.2, *) {
53+
suite.test("comparable") {
54+
let c0 = WordPair(first: 0, second: 0)
55+
let c1 = WordPair(first: 1, second: 0)
56+
let c2 = WordPair(first: 2, second: 0)
57+
let c3 = WordPair(first: 0, second: 1)
58+
let c4 = WordPair(first: 1, second: 2)
59+
let c5 = WordPair(first: 2, second: 1)
60+
expectFalse(c0 < c0)
61+
expectTrue(c0 < c1)
62+
expectTrue(c0 < c2)
63+
expectTrue(c0 < c3)
64+
expectFalse(c1 < c0)
65+
expectTrue(c4 < c5)
66+
expectFalse(c5 < c4)
67+
}
68+
} // if #available(SwiftStdlib 6.2, *)
69+
5270
runAllTests()

0 commit comments

Comments
 (0)