@@ -192,14 +192,14 @@ pub enum AttrInput {
192192 /// `#[attr = "string"]`
193193 Literal ( SmolStr ) ,
194194 /// `#[attr(subtree)]`
195- TokenTree ( tt:: Subtree , mbe:: TokenMap ) ,
195+ TokenTree ( Box < ( tt:: Subtree , mbe:: TokenMap ) > ) ,
196196}
197197
198198impl fmt:: Display for AttrInput {
199199 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
200200 match self {
201201 AttrInput :: Literal ( lit) => write ! ( f, " = \" {}\" " , lit. escape_debug( ) ) ,
202- AttrInput :: TokenTree ( subtree , _ ) => subtree . fmt ( f) ,
202+ AttrInput :: TokenTree ( tt ) => tt . 0 . fmt ( f) ,
203203 }
204204 }
205205}
@@ -220,7 +220,7 @@ impl Attr {
220220 Some ( Interned :: new ( AttrInput :: Literal ( value) ) )
221221 } else if let Some ( tt) = ast. token_tree ( ) {
222222 let ( tree, map) = syntax_node_to_token_tree ( tt. syntax ( ) ) ;
223- Some ( Interned :: new ( AttrInput :: TokenTree ( tree, map) ) )
223+ Some ( Interned :: new ( AttrInput :: TokenTree ( Box :: new ( ( tree, map) ) ) ) )
224224 } else {
225225 None
226226 } ;
@@ -256,7 +256,7 @@ impl Attr {
256256 /// #[path(ident)]
257257 pub fn single_ident_value ( & self ) -> Option < & tt:: Ident > {
258258 match self . input . as_deref ( ) ? {
259- AttrInput :: TokenTree ( subtree , _ ) => match & * subtree . token_trees {
259+ AttrInput :: TokenTree ( tt ) => match & * tt . 0 . token_trees {
260260 [ tt:: TokenTree :: Leaf ( tt:: Leaf :: Ident ( ident) ) ] => Some ( ident) ,
261261 _ => None ,
262262 } ,
@@ -267,7 +267,7 @@ impl Attr {
267267 /// #[path TokenTree]
268268 pub fn token_tree_value ( & self ) -> Option < & Subtree > {
269269 match self . input . as_deref ( ) ? {
270- AttrInput :: TokenTree ( subtree , _ ) => Some ( subtree ) ,
270+ AttrInput :: TokenTree ( tt ) => Some ( & tt . 0 ) ,
271271 _ => None ,
272272 }
273273 }
0 commit comments