Make non-ASCII errors more consistent.
There are three kinds of "byte" literals: byte literals, byte string literals, and raw byte string literals. None are allowed to have non-ASCII chars in them. Two `EscapeError` variants exist for when that constraint is violated. - `NonAsciiCharInByte`: used for byte literals and byte string literals. - `NonAsciiCharInByteString`: used for raw byte string literals. As a result, the messages for raw byte string literals use different wording, without good reason. Also, byte string literals are incorrectly described as "byte constants" in some error messages. This commit eliminates `NonAsciiCharInByteString` so the three cases are handled similarly, and described correctly. The `mode` is enough to distinguish them. Note: Some existing error messages mention "byte constants" and some mention "byte literals". I went with the latter here, because it's a more correct name, as used by the Reference.
This commit is contained in:
parent
34b32b0dac
commit
7dbf2c0ed8
15 changed files with 62 additions and 74 deletions
|
@ -3,7 +3,7 @@ static FOO: &'static [u8] = b"\f"; //~ ERROR unknown byte escape
|
|||
pub fn main() {
|
||||
b"\f"; //~ ERROR unknown byte escape
|
||||
b"\x0Z"; //~ ERROR invalid character in numeric character escape: `Z`
|
||||
b"é"; //~ ERROR non-ASCII character in byte constant
|
||||
br##"é"##; //~ ERROR raw byte string must be ASCII
|
||||
b"é"; //~ ERROR non-ASCII character in byte string literal
|
||||
br##"é"##; //~ ERROR non-ASCII character in raw byte string literal
|
||||
b"a //~ ERROR unterminated double quote byte string
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue