@@ -448,7 +448,7 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for SummaryLine<'a, I> {
448
448
if !self . started {
449
449
self . started = true ;
450
450
}
451
- while let Some ( event) = self . inner . next ( ) {
451
+ if let Some ( event) = self . inner . next ( ) {
452
452
let mut is_start = true ;
453
453
let is_allowed_tag = match event {
454
454
Event :: Start ( Tag :: CodeBlock ( _) ) | Event :: End ( Tag :: CodeBlock ( _) ) => {
@@ -944,75 +944,70 @@ crate fn rust_code_blocks(md: &str) -> Vec<RustCodeBlock> {
944
944
let mut p = Parser :: new_ext ( md, opts ( ) ) . into_offset_iter ( ) ;
945
945
946
946
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
+ } ) ;
958
970
continue ;
959
971
}
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 ;
986
981
}
987
- ( syntax, code_start, code_end, offset, true )
982
+ } ;
983
+ while let Some ( ( Event :: Text ( _) , offset) ) = p. next ( ) {
984
+ code_end = offset. end ;
988
985
}
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 )
1005
1001
}
1006
- } ;
1002
+ }
1003
+ } ;
1007
1004
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
+ } ) ;
1016
1011
}
1017
1012
}
1018
1013
0 commit comments