-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of #88795 - FabianWolff:issue-88684, r=wesleywiser
Print a note if a character literal contains a variation selector Fixes #88684.
- Loading branch information
Showing
4 changed files
with
137 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
// Regression test for #88684: Improve diagnostics for combining marks | ||
// in character literals. | ||
|
||
// run-rustfix | ||
|
||
fn main() { | ||
let _spade = "♠️"; | ||
//~^ ERROR: character literal may only contain one codepoint | ||
//~| NOTE: this `♠` is followed by the combining mark `\u{fe0f}` | ||
//~| HELP: if you meant to write a `str` literal, use double quotes | ||
|
||
let _s = "ṩ̂̊"; | ||
//~^ ERROR: character literal may only contain one codepoint | ||
//~| NOTE: this `s` is followed by the combining marks `\u{323}\u{307}\u{302}\u{30a}` | ||
//~| HELP: if you meant to write a `str` literal, use double quotes | ||
|
||
let _a = 'Å'; | ||
//~^ ERROR: character literal may only contain one codepoint | ||
//~| NOTE: this `A` is followed by the combining mark `\u{30a}` | ||
//~| HELP: consider using the normalized form `\u{c5}` of this character | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
// Regression test for #88684: Improve diagnostics for combining marks | ||
// in character literals. | ||
|
||
// run-rustfix | ||
|
||
fn main() { | ||
let _spade = '♠️'; | ||
//~^ ERROR: character literal may only contain one codepoint | ||
//~| NOTE: this `♠` is followed by the combining mark `\u{fe0f}` | ||
//~| HELP: if you meant to write a `str` literal, use double quotes | ||
|
||
let _s = 'ṩ̂̊'; | ||
//~^ ERROR: character literal may only contain one codepoint | ||
//~| NOTE: this `s` is followed by the combining marks `\u{323}\u{307}\u{302}\u{30a}` | ||
//~| HELP: if you meant to write a `str` literal, use double quotes | ||
|
||
let _a = 'Å'; | ||
//~^ ERROR: character literal may only contain one codepoint | ||
//~| NOTE: this `A` is followed by the combining mark `\u{30a}` | ||
//~| HELP: consider using the normalized form `\u{c5}` of this character | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
error: character literal may only contain one codepoint | ||
--> $DIR/unicode-character-literal.rs:7:18 | ||
| | ||
LL | let _spade = '♠️'; | ||
| ^^^ | ||
| | ||
note: this `♠` is followed by the combining mark `\u{fe0f}` | ||
--> $DIR/unicode-character-literal.rs:7:19 | ||
| | ||
LL | let _spade = '♠️'; | ||
| ^ | ||
help: if you meant to write a `str` literal, use double quotes | ||
| | ||
LL | let _spade = "♠️"; | ||
| ~~~ | ||
|
||
error: character literal may only contain one codepoint | ||
--> $DIR/unicode-character-literal.rs:12:14 | ||
| | ||
LL | let _s = 'ṩ̂̊'; | ||
| ^^^ | ||
| | ||
note: this `s` is followed by the combining marks `\u{323}\u{307}\u{302}\u{30a}` | ||
--> $DIR/unicode-character-literal.rs:12:15 | ||
| | ||
LL | let _s = 'ṩ̂̊'; | ||
| ^ | ||
help: if you meant to write a `str` literal, use double quotes | ||
| | ||
LL | let _s = "ṩ̂̊"; | ||
| ~~~ | ||
|
||
error: character literal may only contain one codepoint | ||
--> $DIR/unicode-character-literal.rs:17:14 | ||
| | ||
LL | let _a = 'Å'; | ||
| ^-^ | ||
| | | ||
| help: consider using the normalized form `\u{c5}` of this character: `Å` | ||
| | ||
note: this `A` is followed by the combining mark `\u{30a}` | ||
--> $DIR/unicode-character-literal.rs:17:15 | ||
| | ||
LL | let _a = 'Å'; | ||
| ^ | ||
|
||
error: aborting due to 3 previous errors | ||
|