Skip to content

Commit 1cc6e95

Browse files
committed
fix: Add None case for finding max line number
1 parent eed400f commit 1cc6e95

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

Diff for: src/renderer/display_list.rs

+12-8
Original file line numberDiff line numberDiff line change
@@ -72,18 +72,22 @@ impl<'a> fmt::Debug for DisplayList<'a> {
7272

7373
impl<'a> Display for DisplayList<'a> {
7474
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
75-
let max_lineno = self.body.iter().fold(0, |max, set| {
75+
let max_lineno = self.body.iter().fold(None, |max, set| {
7676
set.display_lines.iter().fold(max, |max, line| match line {
77-
DisplayLine::Source { lineno, .. } => cmp::max(lineno.unwrap_or(0), max),
77+
DisplayLine::Source { lineno, .. } => match (max, lineno) {
78+
(Some(max), Some(lineno)) => Some(cmp::max(max, *lineno)),
79+
(Some(max), None) => Some(max),
80+
(None, Some(lineno)) => Some(*lineno),
81+
(None, None) => None,
82+
},
7883
_ => max,
7984
})
8085
});
81-
let lineno_width = if max_lineno == 0 {
82-
1
83-
} else if self.anonymized_line_numbers {
84-
ANONYMIZED_LINE_NUM.len()
85-
} else {
86-
((max_lineno as f64).log10().floor() as usize) + 1
86+
let lineno_width = match max_lineno {
87+
None => 0,
88+
Some(0) => 1,
89+
Some(_max) if self.anonymized_line_numbers => ANONYMIZED_LINE_NUM.len(),
90+
Some(max) => (max as f64).log10().floor() as usize + 1,
8791
};
8892

8993
let multiline_depth = self.body.iter().fold(0, |max, set| {

0 commit comments

Comments
 (0)