Skip to content

Invalid characters accepted for byte and char literals #531

@ehuss

Description

@ehuss

Byte and char literals must not contain the characters ', LF, CR, or TAB. However, proc-macro2 accepts all of these and parses them as a byte literal.

use std::str::FromStr;

fn main() {
    for input in [
        "b'''",
        "b'\r'",
        "b'\n'",
        "b'\t'",
    ] {
        println!("{:?}", proc_macro2::TokenStream::from_str(input));
    }
}

Checked here I believe.

Using proc-macro2 1.0.106.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions