File tree Expand file tree Collapse file tree 1 file changed +13
-15
lines changed Expand file tree Collapse file tree 1 file changed +13
-15
lines changed Original file line number Diff line number Diff line change @@ -498,22 +498,20 @@ pub fn split_into_lines(source: &str) -> Vec<&str> {
498498}
499499
500500pub fn get_generated_source_info ( source : & str ) -> GeneratedInfo {
501- let last_line_start = source. rfind ( '\n' ) ;
502- if let Some ( last_line_start) = last_line_start {
503- let mut generated_line = 2 ;
504- source[ 0 ..last_line_start] . chars ( ) . for_each ( |c| {
505- if c == '\n' {
506- generated_line += 1 ;
507- }
508- } ) ;
509- return GeneratedInfo {
510- generated_line,
511- generated_column : ( source. len ( ) - last_line_start - 1 ) as u32 ,
512- } ;
513- }
501+ let ( generated_line, generated_column) = if source. ends_with ( '\n' ) {
502+ ( split ( source, b'\n' ) . count ( ) + 1 , 0 )
503+ } else {
504+ let mut line_count = 0 ;
505+ let mut last_line = "" ;
506+ for line in split ( source, b'\n' ) {
507+ line_count += 1 ;
508+ last_line = line;
509+ }
510+ ( line_count. max ( 1 ) , last_line. len ( ) )
511+ } ;
514512 GeneratedInfo {
515- generated_line : 1 ,
516- generated_column : source . len ( ) as u32 ,
513+ generated_line : generated_line as u32 ,
514+ generated_column : generated_column as u32 ,
517515 }
518516}
519517
You can’t perform that action at this time.
0 commit comments