diff --git a/library/alloc/src/string.rs b/library/alloc/src/string.rs index 906b0187f7bab..4f926d99c6dbc 100644 --- a/library/alloc/src/string.rs +++ b/library/alloc/src/string.rs @@ -558,13 +558,13 @@ impl String { pub fn from_utf8_lossy(v: &[u8]) -> Cow<'_, str> { let mut iter = lossy::Utf8Lossy::from_bytes(v).chunks(); - let (first_valid, first_broken) = if let Some(chunk) = iter.next() { + let first_valid = if let Some(chunk) = iter.next() { let lossy::Utf8LossyChunk { valid, broken } = chunk; - if valid.len() == v.len() { - debug_assert!(broken.is_empty()); + if broken.is_empty() { + debug_assert_eq!(valid.len(), v.len()); return Cow::Borrowed(valid); } - (valid, broken) + valid } else { return Cow::Borrowed(""); }; @@ -573,9 +573,7 @@ impl String { let mut res = String::with_capacity(v.len()); res.push_str(first_valid); - if !first_broken.is_empty() { - res.push_str(REPLACEMENT); - } + res.push_str(REPLACEMENT); for lossy::Utf8LossyChunk { valid, broken } in iter { res.push_str(valid);