File tree Expand file tree Collapse file tree 2 files changed +51
-1
lines changed Expand file tree Collapse file tree 2 files changed +51
-1
lines changed Original file line number Diff line number Diff line change @@ -1149,7 +1149,7 @@ fn format_header<'a>(
11491149                ..
11501150            }  = item
11511151            { 
1152-                 if  main_range >= range. 0  && main_range <=  range. 1  + end_line . len ( )  { 
1152+                 if  main_range >= range. 0  && main_range < range. 1  + max ( * end_line  as   usize ,   1 )  { 
11531153                    let  char_column = text[ 0 ..( main_range - range. 0 ) . min ( text. len ( ) ) ] 
11541154                        . chars ( ) 
11551155                        . count ( ) ; 
Original file line number Diff line number Diff line change @@ -905,3 +905,53 @@ error: unused optional dependency
905905    let  renderer = Renderer :: plain ( ) ; 
906906    assert_data_eq ! ( renderer. render( input) . to_string( ) ,  expected) ; 
907907} 
908+ 
909+ #[ test]  
910+ fn  origin_correct_start_line ( )  { 
911+     let  source = "aaa\n bbb\n ccc\n ddd\n " ; 
912+     let  input = Level :: Error . title ( "title" ) . snippet ( 
913+         Snippet :: source ( source) 
914+             . origin ( "origin.txt" ) 
915+             . fold ( false ) 
916+             . annotation ( Level :: Error . span ( 8 ..8  + 3 ) . label ( "annotation" ) ) , 
917+     ) ; 
918+ 
919+     let  expected = str![ [ r#" 
920+ error: title 
921+  --> origin.txt:3:1 
922+   | 
923+ 1 | aaa 
924+ 2 | bbb 
925+ 3 | ccc 
926+   | ^^^ annotation 
927+ 4 | ddd 
928+   | 
929+ "# ] ] ; 
930+     let  renderer = Renderer :: plain ( ) ; 
931+     assert_data_eq ! ( renderer. render( input) . to_string( ) ,  expected) ; 
932+ } 
933+ 
934+ #[ test]  
935+ fn  origin_correct_mid_line ( )  { 
936+     let  source = "aaa\n bbb\n ccc\n ddd\n " ; 
937+     let  input = Level :: Error . title ( "title" ) . snippet ( 
938+         Snippet :: source ( source) 
939+             . origin ( "origin.txt" ) 
940+             . fold ( false ) 
941+             . annotation ( Level :: Error . span ( 8  + 1 ..8  + 3 ) . label ( "annotation" ) ) , 
942+     ) ; 
943+ 
944+     let  expected = str![ [ r#" 
945+ error: title 
946+  --> origin.txt:3:2 
947+   | 
948+ 1 | aaa 
949+ 2 | bbb 
950+ 3 | ccc 
951+   |  ^^ annotation 
952+ 4 | ddd 
953+   | 
954+ "# ] ] ; 
955+     let  renderer = Renderer :: plain ( ) ; 
956+     assert_data_eq ! ( renderer. render( input) . to_string( ) ,  expected) ; 
957+ } 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments