@@ -350,16 +350,16 @@ where
350350 self . sink
351351 . parse_error ( Borrowed ( "Unacknowledged self-closing tag" ) ) ;
352352 }
353- token = unwrap_or_return ! (
354- more_tokens . pop_front ( ) ,
355- tokenizer :: TokenSinkResult :: Continue
356- ) ;
353+ let Some ( new_token ) = more_tokens . pop_front ( ) else {
354+ return tokenizer :: TokenSinkResult :: Continue ;
355+ } ;
356+ token = new_token ;
357357 } ,
358358 ProcessResult :: DoneAckSelfClosing => {
359- token = unwrap_or_return ! (
360- more_tokens . pop_front ( ) ,
361- tokenizer :: TokenSinkResult :: Continue
362- ) ;
359+ let Some ( new_token ) = more_tokens . pop_front ( ) else {
360+ return tokenizer :: TokenSinkResult :: Continue ;
361+ } ;
362+ token = new_token ;
363363 } ,
364364 ProcessResult :: Reprocess ( m, t) => {
365365 self . mode . set ( m) ;
@@ -370,7 +370,9 @@ where
370370 } ,
371371 ProcessResult :: SplitWhitespace ( mut buf) => {
372372 let p = buf. pop_front_char_run ( |c| c. is_ascii_whitespace ( ) ) ;
373- let ( first, is_ws) = unwrap_or_return ! ( p, tokenizer:: TokenSinkResult :: Continue ) ;
373+ let Some ( ( first, is_ws) ) = p else {
374+ return tokenizer:: TokenSinkResult :: Continue ;
375+ } ;
374376 let status = if is_ws {
375377 SplitStatus :: Whitespace
376378 } else {
@@ -714,33 +716,33 @@ where
714716 // 2. 3. 4.
715717 for _ in 0 ..8 {
716718 // 5.
717- let ( fmt_elem_index , fmt_elem , fmt_elem_tag ) = unwrap_or_return ! (
718- // We clone the Handle and Tag so they don't cause an immutable borrow of self.
719- self . active_formatting_end_to_marker( )
720- . iter( )
721- . find( |& ( _, _, tag) | tag. name == subject)
722- . map( |( i, h, t) | ( i, h. clone( ) , t. clone( ) ) ) ,
723- {
724- self . process_end_tag_in_body ( Tag {
725- kind : EndTag ,
726- name : subject ,
727- self_closing : false ,
728- attrs : vec! [ ] ,
729- } ) ;
730- }
731- ) ;
719+ // We clone the Handle and Tag so they don't cause an immutable borrow of self.
720+ let maybe_fmt_entry = self
721+ . active_formatting_end_to_marker ( )
722+ . iter ( )
723+ . find ( |& ( _, _, tag) | tag. name == subject)
724+ . map ( |( i, h, t) | ( i, h. clone ( ) , t. clone ( ) ) ) ;
725+
726+ let Some ( ( fmt_elem_index , fmt_elem , fmt_elem_tag ) ) = maybe_fmt_entry else {
727+ return self . process_end_tag_in_body ( Tag {
728+ kind : EndTag ,
729+ name : subject ,
730+ self_closing : false ,
731+ attrs : vec ! [ ] ,
732+ } ) ;
733+ } ;
732734
733- let fmt_elem_stack_index = unwrap_or_return ! (
734- self . open_elems
735- . borrow( )
736- . iter( )
737- . rposition( |n| self . sink. same_node( n, & fmt_elem) ) ,
738- {
739- self . sink
740- . parse_error( Borrowed ( "Formatting element not open" ) ) ;
741- self . active_formatting. borrow_mut( ) . remove( fmt_elem_index) ;
742- }
743- ) ;
735+ let Some ( fmt_elem_stack_index) = self
736+ . open_elems
737+ . borrow ( )
738+ . iter ( )
739+ . rposition ( |n| self . sink . same_node ( n, & fmt_elem) )
740+ else {
741+ self . sink
742+ . parse_error ( Borrowed ( "Formatting element not open" ) ) ;
743+ self . active_formatting . borrow_mut ( ) . remove ( fmt_elem_index) ;
744+ return ;
745+ } ;
744746
745747 // 7.
746748 if !self . in_scope ( default_scope, |n| self . sink . same_node ( & n, & fmt_elem) ) {
@@ -756,20 +758,21 @@ where
756758 }
757759
758760 // 9.
759- let ( furthest_block_index, furthest_block) = unwrap_or_return ! (
760- self . open_elems
761- . borrow( )
762- . iter( )
763- . enumerate( )
764- . skip( fmt_elem_stack_index)
765- . find( |& ( _, open_element) | self . elem_in( open_element, special_tag) )
766- . map( |( i, h) | ( i, h. clone( ) ) ) ,
761+ let maybe_furthest_block = self
762+ . open_elems
763+ . borrow ( )
764+ . iter ( )
765+ . enumerate ( )
766+ . skip ( fmt_elem_stack_index)
767+ . find ( |& ( _, open_element) | self . elem_in ( open_element, special_tag) )
768+ . map ( |( i, h) | ( i, h. clone ( ) ) ) ;
769+
770+ let Some ( ( furthest_block_index, furthest_block) ) = maybe_furthest_block else {
767771 // 10.
768- {
769- self . open_elems. borrow_mut( ) . truncate( fmt_elem_stack_index) ;
770- self . active_formatting. borrow_mut( ) . remove( fmt_elem_index) ;
771- }
772- ) ;
772+ self . open_elems . borrow_mut ( ) . truncate ( fmt_elem_stack_index) ;
773+ self . active_formatting . borrow_mut ( ) . remove ( fmt_elem_index) ;
774+ return ;
775+ } ;
773776
774777 // 11.
775778 let common_ancestor = self . open_elems . borrow ( ) [ fmt_elem_stack_index - 1 ] . clone ( ) ;
@@ -1569,11 +1572,14 @@ where
15691572 }
15701573
15711574 fn handle_misnested_a_tags ( & self , tag : & Tag ) {
1572- let node = unwrap_or_return ! ( self
1575+ let Some ( node) = self
15731576 . active_formatting_end_to_marker ( )
15741577 . iter ( )
15751578 . find ( |& ( _, n, _) | self . html_elem_named ( n, local_name ! ( "a" ) ) )
1576- . map( |( _, n, _) | n. clone( ) ) ) ;
1579+ . map ( |( _, n, _) | n. clone ( ) )
1580+ else {
1581+ return ;
1582+ } ;
15771583
15781584 self . unexpected ( tag) ;
15791585 self . adoption_agency ( local_name ! ( "a" ) ) ;
0 commit comments