Description
There are multiple issues here. Some of this has changed in 1.37 via rust-lang/rust#60793.
-
RAW_BYTE_STRING_LITERAL
no longer allows bare CR (new 1.37). Input format #1459 -
"Raw string" and "raw byte string" needs to be updated that CRLF is converted to LF (new 1.37). Input format #1459
-
Several tokens need to sync the English text with the "Lexer" definition.
STRING_LITERAL
indicates several rules (like isolated CR's are not allowed), but the text does not mention any of those restrictions.CHAR_LITERAL
says "single Unicode character…except U+0027" which is not complete.RAW_STRING_LITERAL
does not allow bare CR's.BYTE_LITERAL
escapes are not described.BYTE_STRING_LITERAL
restrictions are not described.- In general, just make sure they are all in sync!
-
Typo in
RAW_BYTE_STRING_CONTENT
, points toRAW_STRING_CONTENT
when it should beRAW_BYTE_STRING_CONTENT
. Fixes minor errors #818 -
I cannot find anywhere that mentions CRLF in a string is converted to LF. Am I blind? Input format #1459
-
The description for string continuations says "
\
immediately beforeU+000A
", but it can also be before CRLF. How should this be handled? I haven't looked at how it is implemented, but are all CRLF's translated everywhere? Should there just be a blanket statement somewhere about this, to avoid having to discuss it in every string literal definition? Input format #1459
I may be missing some things here. Need to very thoroughly review everything to make sure it is correct and up-to-date with the changes from 60793.