@@ -246,12 +246,10 @@ where
246246 let name = name. clone ( ) ;
247247 let result = {
248248 let parser = & mut self . parser ;
249- // FIXME: https://github.com/servo/rust-cssparser/issues/254
250- let callback = |input : & mut Parser < ' i , ' _ > | {
249+ parse_until_after ( self . input , Delimiter :: Semicolon , |input| {
251250 input. expect_colon ( ) ?;
252251 parser. parse_value ( name, input)
253- } ;
254- parse_until_after ( self . input , Delimiter :: Semicolon , callback)
252+ } )
255253 } ;
256254 return Some ( result. map_err ( |e| ( e, self . input . slice_from ( start. position ( ) ) ) ) ) ;
257255 }
@@ -436,34 +434,28 @@ where
436434 P : AtRuleParser < ' i , Error = E > ,
437435{
438436 let delimiters = Delimiter :: Semicolon | Delimiter :: CurlyBracketBlock ;
439- // FIXME: https://github.com/servo/rust-cssparser/issues/254
440- let callback = |input : & mut Parser < ' i , ' _ > | parser. parse_prelude ( name, input) ;
441- let result = parse_until_before ( input, delimiters, callback) ;
437+ let result = parse_until_before ( input, delimiters, |input| parser. parse_prelude ( name, input) ) ;
442438 match result {
443439 Ok ( prelude) => {
444440 let result = match input. next ( ) {
445- Ok ( & Token :: Semicolon ) | Err ( _) => {
446- parser. rule_without_block ( prelude, start)
447- . map_err ( |( ) | input. new_unexpected_token_error ( Token :: Semicolon ) )
448- } ,
441+ Ok ( & Token :: Semicolon ) | Err ( _) => parser
442+ . rule_without_block ( prelude, start)
443+ . map_err ( |( ) | input. new_unexpected_token_error ( Token :: Semicolon ) ) ,
449444 Ok ( & Token :: CurlyBracketBlock ) => {
450- // FIXME: https://github.com/servo/rust-cssparser/issues/254
451- let callback =
452- |input : & mut Parser < ' i , ' _ > | parser. parse_block ( prelude, start, input) ;
453- parse_nested_block ( input, callback)
454- } ,
445+ parse_nested_block ( input, |input| parser. parse_block ( prelude, start, input) )
446+ }
455447 Ok ( _) => unreachable ! ( ) ,
456448 } ;
457449 result. map_err ( |e| ( e, input. slice_from ( start. position ( ) ) ) )
458- } ,
450+ }
459451 Err ( error) => {
460452 let end_position = input. position ( ) ;
461453 match input. next ( ) {
462454 Ok ( & Token :: CurlyBracketBlock ) | Ok ( & Token :: Semicolon ) | Err ( _) => { }
463455 _ => unreachable ! ( ) ,
464456 } ;
465457 Err ( ( error, input. slice ( start. position ( ) ..end_position) ) )
466- } ,
458+ }
467459 }
468460}
469461
@@ -475,16 +467,14 @@ where
475467 P : QualifiedRuleParser < ' i , Error = E > ,
476468{
477469 let start = input. state ( ) ;
478- // FIXME: https://github.com/servo/rust-cssparser/issues/254
479- let callback = | input : & mut Parser < ' i , ' _ > | parser. parse_prelude ( input) ;
480- let prelude = parse_until_before ( input , Delimiter :: CurlyBracketBlock , callback ) ;
470+ let prelude = parse_until_before ( input , Delimiter :: CurlyBracketBlock , |input| {
471+ parser. parse_prelude ( input)
472+ } ) ;
481473 match * input. next ( ) ? {
482474 Token :: CurlyBracketBlock => {
483475 // Do this here so that we consume the `{` even if the prelude is `Err`.
484476 let prelude = prelude?;
485- // FIXME: https://github.com/servo/rust-cssparser/issues/254
486- let callback = |input : & mut Parser < ' i , ' _ > | parser. parse_block ( prelude, & start, input) ;
487- parse_nested_block ( input, callback)
477+ parse_nested_block ( input, |input| parser. parse_block ( prelude, & start, input) )
488478 }
489479 _ => unreachable ! ( ) ,
490480 }
0 commit comments