Skip to content

Commit 94a16f3

Browse files
committed
[temporary] disable small-string support
1 parent e32dfdd commit 94a16f3

File tree

3 files changed

+7
-12
lines changed

3 files changed

+7
-12
lines changed

stdlib/public/core/StringUTF8View.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ extension String {
8989
/// print(String(s1.utf8.prefix(15))!)
9090
/// // Prints "They call me 'B"
9191
@frozen
92-
@_addressableForDependencies
9392
public struct UTF8View: Sendable {
9493
@usableFromInline
9594
internal var _guts: _StringGuts
@@ -341,10 +340,7 @@ extension String.UTF8View {
341340
#endif
342341
let count = _guts.count
343342
if _guts.isSmall {
344-
let a = Builtin.addressOfBorrow(self)
345-
let address = unsafe UnsafePointer<UTF8.CodeUnit>(a)
346-
let span = unsafe Span(_unsafeStart: address, count: count)
347-
return unsafe _overrideLifetime(span, borrowing: self)
343+
fatalError("Span over the small string form is not supported yet.")
348344
}
349345
_precondition(_guts.isFastUTF8)
350346
let buffer = unsafe _guts._object.fastUTF8

stdlib/public/core/Substring.swift

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,6 @@ extension Substring: LosslessStringConvertible {
630630

631631
extension Substring {
632632
@frozen
633-
@_addressableForDependencies
634633
public struct UTF8View: Sendable {
635634
@usableFromInline
636635
internal var _slice: Slice<String.UTF8View>
@@ -771,11 +770,7 @@ extension Substring.UTF8View {
771770
let first = _slice._startIndex._encodedOffset
772771
let end = _slice._endIndex._encodedOffset
773772
if _wholeGuts.isSmall {
774-
let a = Builtin.addressOfBorrow(self)
775-
let offset = first &+ (2 &* MemoryLayout<String.Index>.stride)
776-
let start = unsafe UnsafePointer<UTF8.CodeUnit>(a).advanced(by: offset)
777-
let span = unsafe Span(_unsafeStart: start, count: end &- first)
778-
return unsafe _overrideLifetime(span, borrowing: self)
773+
fatalError("Span over the small string form is not supported yet.")
779774
}
780775
_internalInvariant(_wholeGuts.isFastUTF8)
781776
let buffer = unsafe _wholeGuts._object.fastUTF8.extracting(

test/stdlib/Span/StringUTF8SpanProperty.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
// RUN: %target-run-stdlib-swift(-enable-experimental-feature LifetimeDependence -enable-experimental-feature Span -enable-experimental-feature AddressableTypes)
13+
// RUN: %target-run-stdlib-swift(-enable-experimental-feature LifetimeDependence -enable-experimental-feature AddressableTypes)
1414

1515
// REQUIRES: executable_test
1616
// REQUIRES: swift_feature_LifetimeDependence
@@ -22,11 +22,13 @@ var suite = TestSuite("StringUTF8StorageProperty")
2222
defer { runAllTests() }
2323

2424
suite.test("Span from Small String")
25+
.skip(.wasiAny(reason: "Trap tests aren't supported on WASI."))
2526
.require(.stdlib_6_2).code {
2627
guard #available(SwiftStdlib 6.2, *) else { return }
2728

2829
let s = "A small string.".utf8
2930
let u = Array(s)
31+
expectCrashLater()
3032
let span = s.span
3133

3234
let count = span.count
@@ -54,11 +56,13 @@ suite.test("Span from Large Native String")
5456
}
5557

5658
suite.test("Span from Small String's Substring")
59+
.skip(.wasiAny(reason: "Trap tests aren't supported on WASI."))
5760
.require(.stdlib_6_2).code {
5861
guard #available(SwiftStdlib 6.2, *) else { return }
5962

6063
let s = "A small string.".dropFirst(8).utf8
6164
let u = Array("string.".utf8)
65+
expectCrashLater()
6266
let span = s.span
6367

6468
let count = span.count

0 commit comments

Comments
 (0)