@@ -177,17 +177,19 @@ extension StringProtocol {
177
177
178
178
// Contiguous UTF-8 strings
179
179
extension String {
180
- /// Returns whether this string is capable of providing access to
181
- /// validly-encoded UTF-8 contents in contiguous memory in O(1) time .
180
+ /// Returns whether this string's storage contains
181
+ /// validly-encoded UTF-8 contents in contiguous memory.
182
182
///
183
- /// Contiguous strings always operate in O(1) time for withUTF8 and always
184
- /// give a result for String.UTF8View.withContiguousStorageIfAvailable.
183
+ /// Contiguous strings always operate in O(1) time for withUTF8, always give
184
+ /// a result for String.UTF8View.withContiguousStorageIfAvailable, and always
185
+ /// return a non-nil value from `String._utf8Span` and `String.UTF8View._span`.
185
186
/// Contiguous strings also benefit from fast-paths and better optimizations.
186
- ///
187
187
@_alwaysEmitIntoClient
188
188
public var isContiguousUTF8 : Bool {
189
189
if _guts. isFastUTF8 {
190
190
#if os(watchOS) && _pointerBitWidth(_32)
191
+ // Required for compatibility with some small strings that
192
+ // may be encoded in the 32-bit slice of watchOS binaries.
191
193
if _guts. isSmall && _guts. count > _SmallString. contiguousCapacity ( ) {
192
194
return false
193
195
}
@@ -233,13 +235,14 @@ extension String {
233
235
234
236
// Contiguous UTF-8 strings
235
237
extension Substring {
236
- /// Returns whether this string is capable of providing access to
237
- /// validly-encoded UTF-8 contents in contiguous memory in O(1) time .
238
+ /// Returns whether this string's storage contains
239
+ /// validly-encoded UTF-8 contents in contiguous memory.
238
240
///
239
- /// Contiguous strings always operate in O(1) time for withUTF8 and always
240
- /// give a result for String.UTF8View.withContiguousStorageIfAvailable.
241
+ /// Contiguous strings always operate in O(1) time for withUTF8, always give
242
+ /// a result for Substring.UTF8View.withContiguousStorageIfAvailable, and
243
+ /// always return a non-nil value from `Substring._utf8Span` and
244
+ /// `Substring.UTF8View._span`.
241
245
/// Contiguous strings also benefit from fast-paths and better optimizations.
242
- ///
243
246
@_alwaysEmitIntoClient
244
247
public var isContiguousUTF8 : Bool { return self . base. isContiguousUTF8 }
245
248
0 commit comments