diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index ba6fe4772028098d3d78dd9b6a3dcc96d799d934..25777f4133b94e952176c431190252780eefd0f2 100644 --- a/compiler/rustc_errors/src/emitter.rs +++ b/compiler/rustc_errors/src/emitter.rs @@ -1679,15 +1679,14 @@ fn emit_suggestion_default( // Colorize addition/replacements with green. for &SubstitutionHighlight { start, end } in highlight_parts { // Account for tabs when highlighting (#87972). - // let tabs: usize = line - // .chars() - // .take(start) - // .map(|ch| match ch { - // '\t' => 3, - // _ => 0, - // }) - // .sum(); - let tabs = 0; + let tabs: usize = line + .chars() + .take(start) + .map(|ch| match ch { + '\t' => 3, + _ => 0, + }) + .sum(); buffer.set_style_range( row_num, max_line_num_len + 3 + start + tabs, diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs index ab3f094863269abba4a84858948444e34c20232f..a37d969f5959461a81d7fef2eecb45bfca701c73 100644 --- a/compiler/rustc_errors/src/lib.rs +++ b/compiler/rustc_errors/src/lib.rs @@ -297,11 +297,11 @@ fn push_trailing( count -= 1; } } else { + acc = 0; highlights.push(std::mem::take(&mut line_highlight)); let mut count = push_trailing(&mut buf, prev_line.as_ref(), &prev_hi, None); while count > 0 { highlights.push(std::mem::take(&mut line_highlight)); - acc = 0; count -= 1; } // push lines between the previous and current span (if any) @@ -310,7 +310,6 @@ fn push_trailing( buf.push_str(line.as_ref()); buf.push('\n'); highlights.push(std::mem::take(&mut line_highlight)); - acc = 0; } } if let Some(cur_line) = sf.get_line(cur_lo.line - 1) {