10
10
//
11
11
//===----------------------------------------------------------------------===//
12
12
13
+ #if SPAN_COMPATIBILITY_STUB
14
+ import Swift
15
+ #endif
16
+
13
17
// A MutableRawSpan represents a span of memory which
14
18
// contains initialized `Element` instances.
15
19
@safe
16
20
@frozen
17
- @available ( SwiftStdlib 6 . 2 , * )
21
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
22
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
18
23
public struct MutableRawSpan : ~ Copyable & ~ Escapable {
19
24
@usableFromInline
20
25
internal let _pointer : UnsafeMutableRawPointer ?
@@ -40,10 +45,12 @@ public struct MutableRawSpan: ~Copyable & ~Escapable {
40
45
}
41
46
}
42
47
43
- @available ( SwiftStdlib 6 . 2 , * )
48
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
49
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
44
50
extension MutableRawSpan : @unchecked Sendable { }
45
51
46
- @available ( SwiftStdlib 6 . 2 , * )
52
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
53
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
47
54
extension MutableRawSpan {
48
55
49
56
@unsafe
@@ -115,7 +122,8 @@ extension MutableRawSpan {
115
122
}
116
123
}
117
124
118
- @available ( SwiftStdlib 6 . 2 , * )
125
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
126
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
119
127
extension MutableRawSpan {
120
128
@_alwaysEmitIntoClient
121
129
public var byteCount : Int { _count }
@@ -129,7 +137,8 @@ extension MutableRawSpan {
129
137
}
130
138
}
131
139
132
- @available ( SwiftStdlib 6 . 2 , * )
140
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
141
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
133
142
extension MutableRawSpan {
134
143
135
144
@_alwaysEmitIntoClient
@@ -154,7 +163,8 @@ extension MutableRawSpan {
154
163
}
155
164
}
156
165
157
- @available( SwiftStdlib 6.2 , * )
166
+ @available( SwiftCompatibilitySpan 5.0 , * )
167
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
158
168
extension RawSpan {
159
169
160
170
@_alwaysEmitIntoClient
@@ -166,7 +176,8 @@ extension RawSpan {
166
176
}
167
177
}
168
178
169
- @available ( SwiftStdlib 6 . 2 , * )
179
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
180
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
170
181
extension MutableRawSpan {
171
182
172
183
public var bytes : RawSpan {
@@ -202,7 +213,8 @@ extension MutableRawSpan {
202
213
}
203
214
}
204
215
205
- @available ( SwiftStdlib 6 . 2 , * )
216
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
217
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
206
218
extension MutableRawSpan {
207
219
208
220
/// Returns a new instance of the given type, constructed from the raw memory
@@ -338,8 +350,13 @@ extension MutableRawSpan {
338
350
}
339
351
}
340
352
353
+ // FIXME: The functions in this extension crash the SIL optimizer when built inside
354
+ // the stub. But these declarations don't generate a public symbol anyway.
355
+ #if !SPAN_COMPATIBILITY_STUB
356
+
341
357
//MARK: copyMemory
342
- @available ( SwiftStdlib 6 . 2 , * )
358
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
359
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
343
360
extension MutableRawSpan {
344
361
345
362
@_alwaysEmitIntoClient
@@ -429,9 +446,11 @@ extension MutableRawSpan {
429
446
update ( fromContentsOf: source. bytes)
430
447
}
431
448
}
449
+ #endif
432
450
433
451
// MARK: sub-spans
434
- @available ( SwiftStdlib 6 . 2 , * )
452
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
453
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
435
454
extension MutableRawSpan {
436
455
437
456
/// Constructs a new span over the items within the supplied range of
@@ -546,7 +565,8 @@ extension MutableRawSpan {
546
565
}
547
566
548
567
// MARK: prefixes and suffixes
549
- @available ( SwiftStdlib 6 . 2 , * )
568
+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
569
+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
550
570
extension MutableRawSpan {
551
571
552
572
/// Returns a span containing the initial elements of this span,
0 commit comments