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