always slice a big string as a slice (not as a small string)

This commit is contained in:
Folkert 2023-12-12 10:49:21 +01:00
parent 37ef3549c8
commit f570444901
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C

View file

@ -256,7 +256,7 @@ impl RocStr {
pub fn try_slice_range(&self, range: Range<usize>) -> Option<Self> {
if self.as_str().get(range.start..range.end).is_none() {
None
} else if range.end - range.start <= SmallString::CAPACITY {
} else if range.end - range.start <= SmallString::CAPACITY && self.is_small_str() {
let slice = &self.as_bytes()[range];
let small_string =
unsafe { SmallString::try_from_utf8_bytes(slice).unwrap_unchecked() };