17ac06127Sopenharmony_ci#![allow(clippy::from_iter_instead_of_collect)]
27ac06127Sopenharmony_ci
37ac06127Sopenharmony_ciuse proc_macro2::{Delimiter, Group, Ident, Span, TokenStream, TokenTree};
47ac06127Sopenharmony_ciuse std::iter;
57ac06127Sopenharmony_ci
67ac06127Sopenharmony_ci#[test]
77ac06127Sopenharmony_cifn test_fmt_group() {
87ac06127Sopenharmony_ci    let ident = Ident::new("x", Span::call_site());
97ac06127Sopenharmony_ci    let inner = TokenStream::from_iter(iter::once(TokenTree::Ident(ident)));
107ac06127Sopenharmony_ci    let parens_empty = Group::new(Delimiter::Parenthesis, TokenStream::new());
117ac06127Sopenharmony_ci    let parens_nonempty = Group::new(Delimiter::Parenthesis, inner.clone());
127ac06127Sopenharmony_ci    let brackets_empty = Group::new(Delimiter::Bracket, TokenStream::new());
137ac06127Sopenharmony_ci    let brackets_nonempty = Group::new(Delimiter::Bracket, inner.clone());
147ac06127Sopenharmony_ci    let braces_empty = Group::new(Delimiter::Brace, TokenStream::new());
157ac06127Sopenharmony_ci    let braces_nonempty = Group::new(Delimiter::Brace, inner.clone());
167ac06127Sopenharmony_ci    let none_empty = Group::new(Delimiter::None, TokenStream::new());
177ac06127Sopenharmony_ci    let none_nonempty = Group::new(Delimiter::None, inner);
187ac06127Sopenharmony_ci
197ac06127Sopenharmony_ci    // Matches libproc_macro.
207ac06127Sopenharmony_ci    assert_eq!("()", parens_empty.to_string());
217ac06127Sopenharmony_ci    assert_eq!("(x)", parens_nonempty.to_string());
227ac06127Sopenharmony_ci    assert_eq!("[]", brackets_empty.to_string());
237ac06127Sopenharmony_ci    assert_eq!("[x]", brackets_nonempty.to_string());
247ac06127Sopenharmony_ci    assert_eq!("{ }", braces_empty.to_string());
257ac06127Sopenharmony_ci    assert_eq!("{ x }", braces_nonempty.to_string());
267ac06127Sopenharmony_ci    assert_eq!("", none_empty.to_string());
277ac06127Sopenharmony_ci    assert_eq!("x", none_nonempty.to_string());
287ac06127Sopenharmony_ci}
29