1010//
1111//===----------------------------------------------------------------------===//
1212
13+ #if SPAN_COMPATIBILITY_STUB
14+ import Swift
15+ #endif
16+
1317// A MutableRawSpan represents a span of memory which
1418// contains initialized `Element` instances.
1519@safe
1620@frozen
17- @available ( SwiftStdlib 6 . 2 , * )
21+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
22+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
1823public struct MutableRawSpan : ~ Copyable & ~ Escapable {
1924 @usableFromInline
2025 internal let _pointer : UnsafeMutableRawPointer ?
@@ -40,10 +45,12 @@ public struct MutableRawSpan: ~Copyable & ~Escapable {
4045 }
4146}
4247
43- @available ( SwiftStdlib 6 . 2 , * )
48+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
49+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
4450extension MutableRawSpan : @unchecked Sendable { }
4551
46- @available ( SwiftStdlib 6 . 2 , * )
52+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
53+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
4754extension MutableRawSpan {
4855
4956 @unsafe
@@ -115,7 +122,8 @@ extension MutableRawSpan {
115122 }
116123}
117124
118- @available ( SwiftStdlib 6 . 2 , * )
125+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
126+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
119127extension MutableRawSpan {
120128 @_alwaysEmitIntoClient
121129 public var byteCount : Int { _count }
@@ -129,7 +137,8 @@ extension MutableRawSpan {
129137 }
130138}
131139
132- @available ( SwiftStdlib 6 . 2 , * )
140+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
141+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
133142extension MutableRawSpan {
134143
135144 @_alwaysEmitIntoClient
@@ -154,7 +163,8 @@ extension MutableRawSpan {
154163 }
155164}
156165
157- @available( SwiftStdlib 6.2 , * )
166+ @available( SwiftCompatibilitySpan 5.0 , * )
167+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
158168extension RawSpan {
159169
160170 @_alwaysEmitIntoClient
@@ -166,7 +176,8 @@ extension RawSpan {
166176 }
167177}
168178
169- @available ( SwiftStdlib 6 . 2 , * )
179+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
180+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
170181extension MutableRawSpan {
171182
172183 public var bytes : RawSpan {
@@ -202,7 +213,8 @@ extension MutableRawSpan {
202213 }
203214}
204215
205- @available ( SwiftStdlib 6 . 2 , * )
216+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
217+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
206218extension MutableRawSpan {
207219
208220 /// Returns a new instance of the given type, constructed from the raw memory
@@ -338,8 +350,13 @@ extension MutableRawSpan {
338350 }
339351}
340352
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+
341357//MARK: copyMemory
342- @available ( SwiftStdlib 6 . 2 , * )
358+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
359+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
343360extension MutableRawSpan {
344361
345362 @_alwaysEmitIntoClient
@@ -429,9 +446,11 @@ extension MutableRawSpan {
429446 update ( fromContentsOf: source. bytes)
430447 }
431448}
449+ #endif
432450
433451// MARK: sub-spans
434- @available ( SwiftStdlib 6 . 2 , * )
452+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
453+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
435454extension MutableRawSpan {
436455
437456 /// Constructs a new span over the items within the supplied range of
@@ -546,7 +565,8 @@ extension MutableRawSpan {
546565}
547566
548567// MARK: prefixes and suffixes
549- @available ( SwiftStdlib 6 . 2 , * )
568+ @available ( SwiftCompatibilitySpan 5 . 0 , * )
569+ @_originallyDefinedIn ( module: " Swift;CompatibilitySpan " , SwiftCompatibilitySpan 6 . 2 )
550570extension MutableRawSpan {
551571
552572 /// Returns a span containing the initial elements of this span,
0 commit comments