diff --git a/src/display_list/from_snippet.rs b/src/display_list/from_snippet.rs index d32d1e0..272c063 100644 --- a/src/display_list/from_snippet.rs +++ b/src/display_list/from_snippet.rs @@ -427,9 +427,10 @@ fn format_body( }); } + let end_mark = (end - line_start).saturating_sub(1); let range = ( - (end - line_start) - margin_left, - (end - line_start + 1) - margin_left, + end_mark - margin_left, + (end_mark + 1) - margin_left, ); body.insert( body_idx + 1, diff --git a/tests/fixtures/no-color/multiline_annotation.toml b/tests/fixtures/no-color/multiline_annotation.toml index bdb577f..c3dc1e9 100644 --- a/tests/fixtures/no-color/multiline_annotation.toml +++ b/tests/fixtures/no-color/multiline_annotation.toml @@ -33,7 +33,7 @@ range = [5, 19] [[slices.annotations]] label = "expected enum `std::option::Option`, found ()" annotation_type = "Error" -range = [22, 765] +range = [22, 766] [title] label = "mismatched types" id = "E0308" diff --git a/tests/fixtures/no-color/multiline_annotation2.toml b/tests/fixtures/no-color/multiline_annotation2.toml index 6ec0b1f..845bf9f 100644 --- a/tests/fixtures/no-color/multiline_annotation2.toml +++ b/tests/fixtures/no-color/multiline_annotation2.toml @@ -10,7 +10,7 @@ fold = false [[slices.annotations]] label = "missing fields `lineno`, `content`" annotation_type = "Error" -range = [31, 127] +range = [31, 128] [title] label = "pattern does not mention fields `lineno`, `content`"