]> git.proxmox.com Git - rustc.git/blame - vendor/syn/tests/test_grouping.rs
New upstream version 1.49.0~beta.4+dfsg1
[rustc.git] / vendor / syn / tests / test_grouping.rs
CommitLineData
e74abb32
XL
1#[macro_use]
2mod macros;
3
4use proc_macro2::{Delimiter, Group, Literal, Punct, Spacing, TokenStream, TokenTree};
e74abb32 5use std::iter::FromIterator;
29967ef6 6use syn::Expr;
e74abb32
XL
7
8#[test]
9fn test_grouping() {
10 let tokens: TokenStream = TokenStream::from_iter(vec![
11 TokenTree::Literal(Literal::i32_suffixed(1)),
12 TokenTree::Punct(Punct::new('+', Spacing::Alone)),
13 TokenTree::Group(Group::new(
14 Delimiter::None,
15 TokenStream::from_iter(vec![
16 TokenTree::Literal(Literal::i32_suffixed(2)),
17 TokenTree::Punct(Punct::new('+', Spacing::Alone)),
18 TokenTree::Literal(Literal::i32_suffixed(3)),
19 ]),
20 )),
21 TokenTree::Punct(Punct::new('*', Spacing::Alone)),
22 TokenTree::Literal(Literal::i32_suffixed(4)),
23 ]);
24
1b1a35ee 25 assert_eq!(tokens.to_string(), "1i32 + 2i32 + 3i32 * 4i32");
e74abb32
XL
26
27 snapshot!(tokens as Expr, @r###"
60c5eb7d
XL
28 Expr::Binary {
29 left: Expr::Lit {
30 lit: 1i32,
31 },
32 op: Add,
33 right: Expr::Binary {
34 left: Expr::Group {
35 expr: Expr::Binary {
36 left: Expr::Lit {
37 lit: 2i32,
38 },
39 op: Add,
40 right: Expr::Lit {
41 lit: 3i32,
42 },
43 },
44 },
45 op: Mul,
46 right: Expr::Lit {
47 lit: 4i32,
48 },
49 },
50 }
e74abb32
XL
51 "###);
52}