[temporary] disable small-string support

This commit is contained in:
Guillaume Lessard
2025-03-20 08:29:21 -07:00
parent 9842a79dc6
commit ea44ff9fc9
3 changed files with 7 additions and 3 deletions

View File

@@ -89,7 +89,6 @@ extension String {
/// print(String(s1.utf8.prefix(15))!) /// print(String(s1.utf8.prefix(15))!)
/// // Prints "They call me 'B" /// // Prints "They call me 'B"
@frozen @frozen
@_addressableForDependencies
public struct UTF8View: Sendable { public struct UTF8View: Sendable {
@usableFromInline @usableFromInline
internal var _guts: _StringGuts internal var _guts: _StringGuts
@@ -344,6 +343,7 @@ extension String.UTF8View {
let a = Builtin.addressOfBorrow(self) let a = Builtin.addressOfBorrow(self)
let address = unsafe UnsafePointer<UTF8.CodeUnit>(a) let address = unsafe UnsafePointer<UTF8.CodeUnit>(a)
let span = unsafe Span(_unsafeStart: address, count: count) let span = unsafe Span(_unsafeStart: address, count: count)
fatalError("Span over the small string form is not supported yet.")
return unsafe _overrideLifetime(span, borrowing: self) return unsafe _overrideLifetime(span, borrowing: self)
} }
_precondition(_guts.isFastUTF8) _precondition(_guts.isFastUTF8)

View File

@@ -630,7 +630,6 @@ extension Substring: LosslessStringConvertible {
extension Substring { extension Substring {
@frozen @frozen
@_addressableForDependencies
public struct UTF8View: Sendable { public struct UTF8View: Sendable {
@usableFromInline @usableFromInline
internal var _slice: Slice<String.UTF8View> internal var _slice: Slice<String.UTF8View>
@@ -775,6 +774,7 @@ extension Substring.UTF8View {
let offset = first &+ (2 &* MemoryLayout<String.Index>.stride) let offset = first &+ (2 &* MemoryLayout<String.Index>.stride)
let start = unsafe UnsafePointer<UTF8.CodeUnit>(a).advanced(by: offset) let start = unsafe UnsafePointer<UTF8.CodeUnit>(a).advanced(by: offset)
let span = unsafe Span(_unsafeStart: start, count: end &- first) let span = unsafe Span(_unsafeStart: start, count: end &- first)
fatalError("Span over the small string form is not supported yet.")
return unsafe _overrideLifetime(span, borrowing: self) return unsafe _overrideLifetime(span, borrowing: self)
} }
_internalInvariant(_wholeGuts.isFastUTF8) _internalInvariant(_wholeGuts.isFastUTF8)

View File

@@ -10,7 +10,7 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// RUN: %target-run-stdlib-swift(-enable-experimental-feature LifetimeDependence -enable-experimental-feature Span -enable-experimental-feature AddressableTypes) // RUN: %target-run-stdlib-swift(-enable-experimental-feature LifetimeDependence -enable-experimental-feature AddressableTypes)
// REQUIRES: executable_test // REQUIRES: executable_test
// REQUIRES: swift_feature_LifetimeDependence // REQUIRES: swift_feature_LifetimeDependence
@@ -22,11 +22,13 @@ var suite = TestSuite("StringUTF8StorageProperty")
defer { runAllTests() } defer { runAllTests() }
suite.test("Span from Small String") suite.test("Span from Small String")
.skip(.wasiAny(reason: "Trap tests aren't supported on WASI."))
.require(.stdlib_6_2).code { .require(.stdlib_6_2).code {
guard #available(SwiftStdlib 6.2, *) else { return } guard #available(SwiftStdlib 6.2, *) else { return }
let s = "A small string.".utf8 let s = "A small string.".utf8
let u = Array(s) let u = Array(s)
expectCrashLater()
let span = s.span let span = s.span
let count = span.count let count = span.count
@@ -54,11 +56,13 @@ suite.test("Span from Large Native String")
} }
suite.test("Span from Small String's Substring") suite.test("Span from Small String's Substring")
.skip(.wasiAny(reason: "Trap tests aren't supported on WASI."))
.require(.stdlib_6_2).code { .require(.stdlib_6_2).code {
guard #available(SwiftStdlib 6.2, *) else { return } guard #available(SwiftStdlib 6.2, *) else { return }
let s = "A small string.".dropFirst(8).utf8 let s = "A small string.".dropFirst(8).utf8
let u = Array("string.".utf8) let u = Array("string.".utf8)
expectCrashLater()
let span = s.span let span = s.span
let count = span.count let count = span.count