You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
extern crate unicode_segmentation;
use unicode_segmentation::UnicodeSegmentation;
fn main() {
let s = "\u{1F938}\u{1F3FE}\u{1F3FE}";
let forward = UnicodeSegmentation::graphemes(s, true).collect::<Vec<_>>();
let forward_reversed = forward.into_iter().rev().collect::<Vec<_>>();
let reverse = UnicodeSegmentation::graphemes(s, true).rev().collect::<Vec<_>>();
assert_eq!(forward_reversed, reverse);
}
It panics with (manually escaped):
left `["\u{1F938}\u{1F3FE}\u{1F3FE}"]`, right: `["\u{1F3FE}", "\u{1F938}\u{1F3FE}"]`
The original emoji is (uniview) U+1F938 PERSON DOING CARTWHEEL followed by two Fitzpatrick skin color modifiers. I suspect this error will happen whenever you have two skin color modifiers after a modifiable emoji.
We have another mismatch on \u{200D}\u{200D}\u{2764}\u{2764}; the forward iterator considers it a single grapheme but the reverse iterator splits off the last heart into its own grapheme. This is likely a separate bug, but I'm listing it here.
Found by cargo-fuzz.
This crashes:
It panics with (manually escaped):
The original emoji is (uniview) U+1F938 PERSON DOING CARTWHEEL followed by two Fitzpatrick skin color modifiers. I suspect this error will happen whenever you have two skin color modifiers after a modifiable emoji.
cc @mbrubeck @kwantam
The text was updated successfully, but these errors were encountered: