@@ -31,15 +31,14 @@ impl MetaTemplate {
3131 edition : impl Copy + Fn ( SyntaxContextId ) -> Edition ,
3232 pattern : & tt:: Subtree < Span > ,
3333 ) -> Result < Self , ParseError > {
34- MetaTemplate :: parse ( edition, pattern, Mode :: Pattern , false )
34+ MetaTemplate :: parse ( edition, pattern, Mode :: Pattern )
3535 }
3636
3737 pub ( crate ) fn parse_template (
3838 edition : impl Copy + Fn ( SyntaxContextId ) -> Edition ,
3939 template : & tt:: Subtree < Span > ,
40- new_meta_vars : bool ,
4140 ) -> Result < Self , ParseError > {
42- MetaTemplate :: parse ( edition, template, Mode :: Template , new_meta_vars )
41+ MetaTemplate :: parse ( edition, template, Mode :: Template )
4342 }
4443
4544 pub ( crate ) fn iter ( & self ) -> impl Iterator < Item = & Op > {
@@ -50,13 +49,12 @@ impl MetaTemplate {
5049 edition : impl Copy + Fn ( SyntaxContextId ) -> Edition ,
5150 tt : & tt:: Subtree < Span > ,
5251 mode : Mode ,
53- new_meta_vars : bool ,
5452 ) -> Result < Self , ParseError > {
5553 let mut src = TtIter :: new ( tt) ;
5654
5755 let mut res = Vec :: new ( ) ;
5856 while let Some ( first) = src. peek_n ( 0 ) {
59- let op = next_op ( edition, first, & mut src, mode, new_meta_vars ) ?;
57+ let op = next_op ( edition, first, & mut src, mode) ?;
6058 res. push ( op) ;
6159 }
6260
@@ -161,7 +159,6 @@ fn next_op(
161159 first_peeked : & tt:: TokenTree < Span > ,
162160 src : & mut TtIter < ' _ , Span > ,
163161 mode : Mode ,
164- new_meta_vars : bool ,
165162) -> Result < Op , ParseError > {
166163 let res = match first_peeked {
167164 tt:: TokenTree :: Leaf ( tt:: Leaf :: Punct ( p @ tt:: Punct { char : '$' , .. } ) ) => {
@@ -181,14 +178,14 @@ fn next_op(
181178 tt:: TokenTree :: Subtree ( subtree) => match subtree. delimiter . kind {
182179 tt:: DelimiterKind :: Parenthesis => {
183180 let ( separator, kind) = parse_repeat ( src) ?;
184- let tokens = MetaTemplate :: parse ( edition, subtree, mode, new_meta_vars ) ?;
181+ let tokens = MetaTemplate :: parse ( edition, subtree, mode) ?;
185182 Op :: Repeat { tokens, separator : separator. map ( Arc :: new) , kind }
186183 }
187184 tt:: DelimiterKind :: Brace => match mode {
188185 Mode :: Template => {
189- parse_metavar_expr ( new_meta_vars , & mut TtIter :: new ( subtree) ) . map_err (
190- | ( ) | ParseError :: unexpected ( "invalid metavariable expression" ) ,
191- ) ?
186+ parse_metavar_expr ( & mut TtIter :: new ( subtree) ) . map_err ( | ( ) | {
187+ ParseError :: unexpected ( "invalid metavariable expression" )
188+ } ) ?
192189 }
193190 Mode :: Pattern => {
194191 return Err ( ParseError :: unexpected (
@@ -260,7 +257,7 @@ fn next_op(
260257
261258 tt:: TokenTree :: Subtree ( subtree) => {
262259 src. next ( ) . expect ( "first token already peeked" ) ;
263- let tokens = MetaTemplate :: parse ( edition, subtree, mode, new_meta_vars ) ?;
260+ let tokens = MetaTemplate :: parse ( edition, subtree, mode) ?;
264261 Op :: Subtree { tokens, delimiter : subtree. delimiter }
265262 }
266263 } ;
@@ -343,7 +340,7 @@ fn parse_repeat(src: &mut TtIter<'_, Span>) -> Result<(Option<Separator>, Repeat
343340 Err ( ParseError :: InvalidRepeat )
344341}
345342
346- fn parse_metavar_expr ( new_meta_vars : bool , src : & mut TtIter < ' _ , Span > ) -> Result < Op , ( ) > {
343+ fn parse_metavar_expr ( src : & mut TtIter < ' _ , Span > ) -> Result < Op , ( ) > {
347344 let func = src. expect_ident ( ) ?;
348345 let args = src. expect_subtree ( ) ?;
349346
@@ -355,18 +352,14 @@ fn parse_metavar_expr(new_meta_vars: bool, src: &mut TtIter<'_, Span>) -> Result
355352
356353 let op = match & func. sym {
357354 s if sym:: ignore == * s => {
358- if new_meta_vars {
359- args. expect_dollar ( ) ?;
360- }
355+ args. expect_dollar ( ) ?;
361356 let ident = args. expect_ident ( ) ?;
362357 Op :: Ignore { name : ident. sym . clone ( ) , id : ident. span }
363358 }
364359 s if sym:: index == * s => Op :: Index { depth : parse_depth ( & mut args) ? } ,
365360 s if sym:: len == * s => Op :: Len { depth : parse_depth ( & mut args) ? } ,
366361 s if sym:: count == * s => {
367- if new_meta_vars {
368- args. expect_dollar ( ) ?;
369- }
362+ args. expect_dollar ( ) ?;
370363 let ident = args. expect_ident ( ) ?;
371364 let depth = if try_eat_comma ( & mut args) { Some ( parse_depth ( & mut args) ?) } else { None } ;
372365 Op :: Count { name : ident. sym . clone ( ) , depth }
0 commit comments