@@ -12,22 +12,17 @@ func checkMatch<S: Collection, T: Collection>(_ x: S, _ y: T, _ i: S.Index)
12
12
expectEqual ( x [ i] , y [ i] )
13
13
}
14
14
15
- func checkMatchContiguousStorage< S: Collection , T: Collection > ( _ x: S , _ y: T , expected : Bool )
15
+ func checkMatchContiguousStorage< S: Collection , T: Collection > ( _ x: S , _ y: T )
16
16
where S. Element == T . Element , S. Element: Equatable
17
17
{
18
18
let xElement = x. withContiguousStorageIfAvailable { $0. first }
19
19
let yElement = y. withContiguousStorageIfAvailable { $0. first }
20
20
21
- if expected {
22
- expectEqual ( xElement, yElement)
23
- } else {
24
- expectNotEqual ( xElement, yElement)
25
- }
21
+ expectEqual ( xElement, yElement)
26
22
}
27
23
28
- func checkHasContiguousStorage< S: Collection > ( _ x: S , expected: Bool ) {
29
- let hasStorage = x. withContiguousStorageIfAvailable { _ in true } ?? false
30
- expectEqual ( hasStorage, expected)
24
+ func checkHasContiguousStorage< S: Collection > ( _ x: S ) {
25
+ expectTrue ( x. withContiguousStorageIfAvailable { _ in true } ?? false )
31
26
}
32
27
33
28
func checkHasContiguousStorageSubstring( _ x: Substring . UTF8View ) {
@@ -252,23 +247,21 @@ SubstringTests.test("UTF8View") {
252
247
expectEqual ( " " , String ( u. dropFirst ( 100 ) ) !)
253
248
expectEqual ( " " , String ( u. dropLast ( 100 ) ) !)
254
249
255
- let expectSubstringWCSIA : Bool
256
- // This availability guard should refer to a concrete OS version in
257
- // future.
258
- if #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) {
259
- expectSubstringWCSIA = true
260
- } else {
261
- expectSubstringWCSIA = false
262
- }
263
250
264
- checkHasContiguousStorage ( s. utf8, expected: true ) // Strings always do
265
- checkHasContiguousStorage ( t, expected: expectSubstringWCSIA)
266
- checkHasContiguousStorage ( u, expected: expectSubstringWCSIA)
251
+ checkHasContiguousStorage ( s. utf8) // Strings always do
267
252
checkHasContiguousStorageSubstring ( t)
268
253
checkHasContiguousStorageSubstring ( u)
269
- checkMatchContiguousStorage ( Array ( s. utf8) , s. utf8, expected: true )
270
- checkMatchContiguousStorage ( Array ( t) , t, expected: expectSubstringWCSIA)
271
- checkMatchContiguousStorage ( Array ( u) , u, expected: expectSubstringWCSIA)
254
+ checkMatchContiguousStorage ( Array ( s. utf8) , s. utf8)
255
+
256
+ // The specialization for Substring.withContiguousStorageIfAvailable was
257
+ // added in https://github.com/apple/swift/pull/29146.
258
+ guard #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) else {
259
+ return
260
+ }
261
+ checkHasContiguousStorage ( t)
262
+ checkHasContiguousStorage ( u)
263
+ checkMatchContiguousStorage ( Array ( t) , t)
264
+ checkMatchContiguousStorage ( Array ( u) , u)
272
265
}
273
266
}
274
267
0 commit comments