| // Tests that a suggestion is issued for type mismatch errors when a |
| // u8 is expected and a char literal which is ASCII is supplied. |
| |
| fn foo(_t: u8) {} |
| |
| fn main() { |
| let _x: u8 = 'X'; |
| //~^ ERROR: mismatched types [E0308] |
| //~| HELP: if you meant to write a byte literal, prefix with `b` |
| |
| foo('#'); |
| //~^ ERROR: mismatched types [E0308] |
| //~| HELP: if you meant to write a byte literal, prefix with `b` |
| |
| let _a: u8 = '\x20'; |
| //~^ ERROR: mismatched types [E0308] |
| //~| HELP: if you meant to write a byte literal, prefix with `b` |
| |
| // Do not issue the suggestion if the char literal is a Unicode escape |
| foo('\u{0080}'); |
| //~^ ERROR: mismatched types [E0308] |
| |
| // Do not issue the suggestion if the char literal isn't ASCII |
| let _t: u8 = '€'; |
| //~^ ERROR: mismatched types [E0308] |
| |
| // Do not issue the suggestion if the char literal isn't ASCII |
| foo('\u{1f980}'); |
| //~^ ERROR: mismatched types [E0308] |
| } |