Refactor tt::Delimiter

This commit is contained in:
Edwin Cheng 2019-12-13 21:53:34 +08:00
parent 16cf6bcf4b
commit 98f98cbb54
8 changed files with 42 additions and 44 deletions

View file

@ -16,7 +16,7 @@ macro_rules! __quote {
{
let children = $crate::__quote!($($tt)*);
let subtree = tt::Subtree {
delimiter: tt::Delimiter::$delim,
delimiter: Some(tt::Delimiter::$delim),
token_trees: $crate::quote::IntoTt::to_tokens(children),
};
subtree
@ -124,7 +124,7 @@ pub(crate) trait IntoTt {
impl IntoTt for Vec<tt::TokenTree> {
fn to_subtree(self) -> tt::Subtree {
tt::Subtree { delimiter: tt::Delimiter::None, token_trees: self }
tt::Subtree { delimiter: None, token_trees: self }
}
fn to_tokens(self) -> Vec<tt::TokenTree> {
@ -254,7 +254,8 @@ mod tests {
let fields =
fields.iter().map(|it| quote!(#it: self.#it.clone(), ).token_trees.clone()).flatten();
let list = tt::Subtree { delimiter: tt::Delimiter::Brace, token_trees: fields.collect() };
let list =
tt::Subtree { delimiter: Some(tt::Delimiter::Brace), token_trees: fields.collect() };
let quoted = quote! {
impl Clone for #struct_name {