]> git.proxmox.com Git - rustc.git/blob - vendor/syn/tests/test_item.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / vendor / syn / tests / test_item.rs
1 #[macro_use]
2 mod macros;
3
4 use proc_macro2::{Delimiter, Group, Ident, Span, TokenStream, TokenTree};
5 use quote::quote;
6 use std::iter::FromIterator;
7 use syn::Item;
8
9 #[test]
10 fn test_macro_variable_attr() {
11 // mimics the token stream corresponding to `$attr fn f() {}`
12 let tokens = TokenStream::from_iter(vec![
13 TokenTree::Group(Group::new(Delimiter::None, quote! { #[test] })),
14 TokenTree::Ident(Ident::new("fn", Span::call_site())),
15 TokenTree::Ident(Ident::new("f", Span::call_site())),
16 TokenTree::Group(Group::new(Delimiter::Parenthesis, TokenStream::new())),
17 TokenTree::Group(Group::new(Delimiter::Brace, TokenStream::new())),
18 ]);
19
20 snapshot!(tokens as Item, @r###"
21 Item::Fn {
22 attrs: [
23 Attribute {
24 style: Outer,
25 path: Path {
26 segments: [
27 PathSegment {
28 ident: "test",
29 arguments: None,
30 },
31 ],
32 },
33 tokens: TokenStream(``),
34 },
35 ],
36 vis: Inherited,
37 sig: Signature {
38 ident: "f",
39 generics: Generics,
40 output: Default,
41 },
42 block: Block,
43 }
44 "###);
45 }