@@ -448,7 +448,7 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for SummaryLine<'a, I> {
448448 if !self . started {
449449 self . started = true ;
450450 }
451- while let Some ( event) = self . inner . next ( ) {
451+ if let Some ( event) = self . inner . next ( ) {
452452 let mut is_start = true ;
453453 let is_allowed_tag = match event {
454454 Event :: Start ( Tag :: CodeBlock ( _) ) | Event :: End ( Tag :: CodeBlock ( _) ) => {
@@ -944,75 +944,70 @@ crate fn rust_code_blocks(md: &str) -> Vec<RustCodeBlock> {
944944 let mut p = Parser :: new_ext ( md, opts ( ) ) . into_offset_iter ( ) ;
945945
946946 while let Some ( ( event, offset) ) = p. next ( ) {
947- match event {
948- Event :: Start ( Tag :: CodeBlock ( syntax) ) => {
949- let ( syntax, code_start, code_end, range, is_fenced) = match syntax {
950- CodeBlockKind :: Fenced ( syntax) => {
951- let syntax = syntax. as_ref ( ) ;
952- let lang_string = if syntax. is_empty ( ) {
953- LangString :: all_false ( )
954- } else {
955- LangString :: parse ( & * syntax, ErrorCodes :: Yes , false )
956- } ;
957- if !lang_string. rust {
947+ if let Event :: Start ( Tag :: CodeBlock ( syntax) ) = event {
948+ let ( syntax, code_start, code_end, range, is_fenced) = match syntax {
949+ CodeBlockKind :: Fenced ( syntax) => {
950+ let syntax = syntax. as_ref ( ) ;
951+ let lang_string = if syntax. is_empty ( ) {
952+ LangString :: all_false ( )
953+ } else {
954+ LangString :: parse ( & * syntax, ErrorCodes :: Yes , false )
955+ } ;
956+ if !lang_string. rust {
957+ continue ;
958+ }
959+ let syntax = if syntax. is_empty ( ) { None } else { Some ( syntax. to_owned ( ) ) } ;
960+ let ( code_start, mut code_end) = match p. next ( ) {
961+ Some ( ( Event :: Text ( _) , offset) ) => ( offset. start , offset. end ) ,
962+ Some ( ( _, sub_offset) ) => {
963+ let code = Range { start : sub_offset. start , end : sub_offset. start } ;
964+ code_blocks. push ( RustCodeBlock {
965+ is_fenced : true ,
966+ range : offset,
967+ code,
968+ syntax,
969+ } ) ;
958970 continue ;
959971 }
960- let syntax = if syntax. is_empty ( ) { None } else { Some ( syntax. to_owned ( ) ) } ;
961- let ( code_start, mut code_end) = match p. next ( ) {
962- Some ( ( Event :: Text ( _) , offset) ) => ( offset. start , offset. end ) ,
963- Some ( ( _, sub_offset) ) => {
964- let code = Range { start : sub_offset. start , end : sub_offset. start } ;
965- code_blocks. push ( RustCodeBlock {
966- is_fenced : true ,
967- range : offset,
968- code,
969- syntax,
970- } ) ;
971- continue ;
972- }
973- None => {
974- let code = Range { start : offset. end , end : offset. end } ;
975- code_blocks. push ( RustCodeBlock {
976- is_fenced : true ,
977- range : offset,
978- code,
979- syntax,
980- } ) ;
981- continue ;
982- }
983- } ;
984- while let Some ( ( Event :: Text ( _) , offset) ) = p. next ( ) {
985- code_end = offset. end ;
972+ None => {
973+ let code = Range { start : offset. end , end : offset. end } ;
974+ code_blocks. push ( RustCodeBlock {
975+ is_fenced : true ,
976+ range : offset,
977+ code,
978+ syntax,
979+ } ) ;
980+ continue ;
986981 }
987- ( syntax, code_start, code_end, offset, true )
982+ } ;
983+ while let Some ( ( Event :: Text ( _) , offset) ) = p. next ( ) {
984+ code_end = offset. end ;
988985 }
989- CodeBlockKind :: Indented => {
990- // The ending of the offset goes too far sometime so we reduce it by one in
991- // these cases.
992- if offset. end > offset. start
993- && md. get ( offset. end ..=offset. end ) == Some ( & "\n " )
994- {
995- (
996- None ,
997- offset. start ,
998- offset. end ,
999- Range { start : offset. start , end : offset. end - 1 } ,
1000- false ,
1001- )
1002- } else {
1003- ( None , offset. start , offset. end , offset, false )
1004- }
986+ ( syntax, code_start, code_end, offset, true )
987+ }
988+ CodeBlockKind :: Indented => {
989+ // The ending of the offset goes too far sometime so we reduce it by one in
990+ // these cases.
991+ if offset. end > offset. start && md. get ( offset. end ..=offset. end ) == Some ( & "\n " ) {
992+ (
993+ None ,
994+ offset. start ,
995+ offset. end ,
996+ Range { start : offset. start , end : offset. end - 1 } ,
997+ false ,
998+ )
999+ } else {
1000+ ( None , offset. start , offset. end , offset, false )
10051001 }
1006- } ;
1002+ }
1003+ } ;
10071004
1008- code_blocks. push ( RustCodeBlock {
1009- is_fenced,
1010- range,
1011- code : Range { start : code_start, end : code_end } ,
1012- syntax,
1013- } ) ;
1014- }
1015- _ => ( ) ,
1005+ code_blocks. push ( RustCodeBlock {
1006+ is_fenced,
1007+ range,
1008+ code : Range { start : code_start, end : code_end } ,
1009+ syntax,
1010+ } ) ;
10161011 }
10171012 }
10181013
0 commit comments