@@ -192,14 +192,14 @@ pub enum AttrInput {
192
192
/// `#[attr = "string"]`
193
193
Literal ( SmolStr ) ,
194
194
/// `#[attr(subtree)]`
195
- TokenTree ( tt:: Subtree , mbe:: TokenMap ) ,
195
+ TokenTree ( Box < ( tt:: Subtree , mbe:: TokenMap ) > ) ,
196
196
}
197
197
198
198
impl fmt:: Display for AttrInput {
199
199
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
200
200
match self {
201
201
AttrInput :: Literal ( lit) => write ! ( f, " = \" {}\" " , lit. escape_debug( ) ) ,
202
- AttrInput :: TokenTree ( subtree , _ ) => subtree . fmt ( f) ,
202
+ AttrInput :: TokenTree ( tt ) => tt . 0 . fmt ( f) ,
203
203
}
204
204
}
205
205
}
@@ -220,7 +220,7 @@ impl Attr {
220
220
Some ( Interned :: new ( AttrInput :: Literal ( value) ) )
221
221
} else if let Some ( tt) = ast. token_tree ( ) {
222
222
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) ) ) ) )
224
224
} else {
225
225
None
226
226
} ;
@@ -256,7 +256,7 @@ impl Attr {
256
256
/// #[path(ident)]
257
257
pub fn single_ident_value ( & self ) -> Option < & tt:: Ident > {
258
258
match self . input . as_deref ( ) ? {
259
- AttrInput :: TokenTree ( subtree , _ ) => match & * subtree . token_trees {
259
+ AttrInput :: TokenTree ( tt ) => match & * tt . 0 . token_trees {
260
260
[ tt:: TokenTree :: Leaf ( tt:: Leaf :: Ident ( ident) ) ] => Some ( ident) ,
261
261
_ => None ,
262
262
} ,
@@ -267,7 +267,7 @@ impl Attr {
267
267
/// #[path TokenTree]
268
268
pub fn token_tree_value ( & self ) -> Option < & Subtree > {
269
269
match self . input . as_deref ( ) ? {
270
- AttrInput :: TokenTree ( subtree , _ ) => Some ( subtree ) ,
270
+ AttrInput :: TokenTree ( tt ) => Some ( & tt . 0 ) ,
271
271
_ => None ,
272
272
}
273
273
}
0 commit comments