Sort FxHashSet's contents before emitting errors for consistent output

This commit is contained in:
Esteban Kuber 2021-09-14 11:39:49 +00:00
parent 38979a3ba1
commit 5402e4833f
2 changed files with 24 additions and 21 deletions

View file

@ -452,7 +452,10 @@ pub fn configure_and_expand(
// Gate identifiers containing invalid Unicode codepoints that were recovered during lexing.
sess.parse_sess.bad_unicode_identifiers.with_lock(|identifiers| {
for (ident, spans) in identifiers.drain() {
let mut identifiers: Vec<_> = identifiers.drain().collect();
identifiers.sort_by_key(|&(key, _)| key);
for (ident, mut spans) in identifiers.into_iter() {
spans.sort();
sess.diagnostic().span_err(
MultiSpan::from(spans),
&format!("identifiers cannot contain emoji: `{}`", ident),

View file

@ -18,23 +18,11 @@ LL | fn i_like_to_😅_a_lot() -> 👀 {
LL | let _ = i_like_to_😄_a_lot() 4;
| ^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `i_like_to_😅_a_lot`
error: identifiers cannot contain emoji: `i_like_to_😄_a_lot`
--> $DIR/emoji-identifiers.rs:13:13
error: identifiers cannot contain emoji: `ABig👩👩👧👧Family`
--> $DIR/emoji-identifiers.rs:1:8
|
LL | let _ = i_like_to_😄_a_lot() 4;
| ^^^^^^^^^^^^^^^^^^
error: identifiers cannot contain emoji: `full_of_✨`
--> $DIR/emoji-identifiers.rs:4:8
|
LL | fn full_of_✨() -> 👀 {
| ^^^^^^^^^^
error: identifiers cannot contain emoji: `full_of✨`
--> $DIR/emoji-identifiers.rs:9:8
|
LL | 👀::full_of✨()
| ^^^^^^^^^
LL | struct ABig👩👩👧👧Family;
| ^^^^^^^^^^^^^^^^^^
error: identifiers cannot contain emoji: `👀`
--> $DIR/emoji-identifiers.rs:2:8
@ -53,17 +41,29 @@ LL | fn i_like_to_😅_a_lot() -> 👀 {
LL | 👀::full_of✨()
| ^^
error: identifiers cannot contain emoji: `full_of_✨`
--> $DIR/emoji-identifiers.rs:4:8
|
LL | fn full_of_✨() -> 👀 {
| ^^^^^^^^^^
error: identifiers cannot contain emoji: `i_like_to_😅_a_lot`
--> $DIR/emoji-identifiers.rs:8:4
|
LL | fn i_like_to_😅_a_lot() -> 👀 {
| ^^^^^^^^^^^^^^^^^^
error: identifiers cannot contain emoji: `ABig👩👩👧👧Family`
--> $DIR/emoji-identifiers.rs:1:8
error: identifiers cannot contain emoji: `full_of✨`
--> $DIR/emoji-identifiers.rs:9:8
|
LL | struct ABig👩👩👧👧Family;
| ^^^^^^^^^^^^^^^^^^
LL | 👀::full_of✨()
| ^^^^^^^^^
error: identifiers cannot contain emoji: `i_like_to_😄_a_lot`
--> $DIR/emoji-identifiers.rs:13:13
|
LL | let _ = i_like_to_😄_a_lot() 4;
| ^^^^^^^^^^^^^^^^^^
error[E0599]: no function or associated item named `full_of✨` found for struct `👀` in the current scope
--> $DIR/emoji-identifiers.rs:9:8