Rollup merge of #126980 - Borgerr:fix-extendfromslice-check, r=workin… · model-checking/verify-rust-std@6c38c60 (original) (raw)
Navigation Menu
- GitHub Copilot Write better code with AI
- GitHub Models New Manage and compare prompts
- GitHub Advanced Security Find and fix vulnerabilities
- Actions Automate any workflow
- Codespaces Instant dev environments
- Issues Plan and track work
- Code Review Manage code changes
- Discussions Collaborate outside of code
- Code Search Find more, search less
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
Commit 6c38c60
File tree
2 files changed
lines changed
2 files changed
lines changed
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -480,7 +480,7 @@ impl Wtf8Buf { | ||
480 | 480 | #[inline] |
481 | 481 | pub(crate) fn extend_from_slice(&mut self, other: &[u8]) { |
482 | 482 | self.bytes.extend_from_slice(other); |
483 | -self.is_known_utf8 = self.is_known_utf8 | | |
483 | +self.is_known_utf8 = false; | |
484 | 484 | } |
485 | 485 | } |
486 | 486 |
Lines changed: 24 additions & 0 deletions
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -725,3 +725,27 @@ fn wtf8_utf8_boundary_between_surrogates() { | ||
725 | 725 | string.push(CodePoint::from_u32(0xD800).unwrap()); |
726 | 726 | check_utf8_boundary(&string, 3); |
727 | 727 | } |
728 | + | |
729 | +#[test] | |
730 | +fn wobbled_wtf8_plus_bytes_isnt_utf8() { | |
731 | +let mut string: Wtf8Buf = unsafe { Wtf8::from_bytes_unchecked(b"\xED\xA0\x80").to_owned() }; | |
732 | +assert!(!string.is_known_utf8); | |
733 | + string.extend_from_slice(b"some utf-8"); | |
734 | +assert!(!string.is_known_utf8); | |
735 | +} | |
736 | + | |
737 | +#[test] | |
738 | +fn wobbled_wtf8_plus_str_isnt_utf8() { | |
739 | +let mut string: Wtf8Buf = unsafe { Wtf8::from_bytes_unchecked(b"\xED\xA0\x80").to_owned() }; | |
740 | +assert!(!string.is_known_utf8); | |
741 | + string.push_str("some utf-8"); | |
742 | +assert!(!string.is_known_utf8); | |
743 | +} | |
744 | + | |
745 | +#[test] | |
746 | +fn unwobbly_wtf8_plus_utf8_is_utf8() { | |
747 | +let mut string: Wtf8Buf = Wtf8Buf::from_str("hello world"); | |
748 | +assert!(string.is_known_utf8); | |
749 | + string.push_str("some utf-8"); | |
750 | +assert!(string.is_known_utf8); | |
751 | +} |