Skip to content

Commit e821269

Browse files
committed
[stdlib] String: Apply transcoded offset when converting indices from UTF-16
1 parent 4ad8b26 commit e821269

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

stdlib/public/core/StringGuts.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,9 @@ extension _StringGuts {
417417
// FIXME: Consider performing a linked-on-or-after check & trapping if the
418418
// client executable was built on some particular future Swift release.
419419
let utf16 = String(self).utf16
420-
return utf16.index(utf16.startIndex, offsetBy: i._encodedOffset)
420+
let base = utf16.index(utf16.startIndex, offsetBy: i._encodedOffset)
421+
if i.transcodedOffset == 0 { return base }
422+
return base.encoded(offsetBy: i.transcodedOffset)._knownUTF8
421423
}
422424
}
423425

0 commit comments

Comments
 (0)