dtolnay / quote

Rust quasi-quoting
Apache License 2.0
1.32k stars 90 forks source link

Eliminate piles of extra semicolons from expanded code #221

Closed dtolnay closed 2 years ago

dtolnay commented 2 years ago

Look at cargo rustc --profile=check -- -Zunpretty=expanded of the following program:

use quote::quote;

fn main() {
    let _ = quote!(1 + 1);
}

Before:

use quote::quote;

fn main() {
    let _ =
        {
            let mut _s = ::quote::__private::TokenStream::new();
            ;
            ;
            ;
            ::quote::__private::parse(&mut _s, "1");
            ;
            ::quote::__private::push_add(&mut _s);
            ;
            ::quote::__private::parse(&mut _s, "1");
            ;
            ;
            ;
            ;
            _s
        };
}

After:

use quote::quote;

fn main() {
    let _ =
        {
            let mut _s = ::quote::__private::TokenStream::new();
            ::quote::__private::parse(&mut _s, "1");
            ::quote::__private::push_add(&mut _s);
            ::quote::__private::parse(&mut _s, "1");
            _s
        };
}