Skip to content

Commit

Permalink
Add test for Item::Verbatim splitting a None group
Browse files Browse the repository at this point in the history
(see issue #1235)
  • Loading branch information
CAD97 committed Oct 20, 2022
1 parent a807b16 commit 26a605e
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions tests/regression/issue1235.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
use proc_macro2::{Delimiter, Group};
use quote::quote;

#[test]
fn main() {
// Okay. Rustc allows top-level `static` with no value syntactically, but
// not semantically. Syn parses as Item::Verbatim.
let tokens = quote!(
pub static FOO: usize;
pub static BAR: usize;
);
let file = syn::parse2::<syn::File>(tokens).unwrap();
println!("{:#?}", file);

// Okay.
let inner = Group::new(
Delimiter::None,
quote!(static FOO: usize = 0; pub static BAR: usize = 0),
);
let tokens = quote!(pub #inner;);
let file = syn::parse2::<syn::File>(tokens).unwrap();
println!("{:#?}", file);

// Parser crash.
let inner = Group::new(
Delimiter::None,
quote!(static FOO: usize; pub static BAR: usize),
);
let tokens = quote!(pub #inner;);
let file = syn::parse2::<syn::File>(tokens).unwrap();
println!("{:#?}", file);
}

0 comments on commit 26a605e

Please sign in to comment.