mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-30 14:01:51 +00:00
diagnostics: fix crash on completely empty included file
This commit is contained in:
parent
1b73c7d1e5
commit
1c41dd6320
@ -1513,7 +1513,9 @@ impl HumanEmitter {
|
||||
for line_idx in 0..annotated_file.lines.len() {
|
||||
let file = annotated_file.file.clone();
|
||||
let line = &annotated_file.lines[line_idx];
|
||||
if let Some(source_string) = file.get_line(line.line_index - 1) {
|
||||
if let Some(source_string) =
|
||||
line.line_index.checked_sub(1).and_then(|l| file.get_line(l))
|
||||
{
|
||||
let leading_whitespace = source_string
|
||||
.chars()
|
||||
.take_while(|c| c.is_whitespace())
|
||||
@ -1553,7 +1555,10 @@ impl HumanEmitter {
|
||||
for line in &annotated_file.lines {
|
||||
max_line_len = max(
|
||||
max_line_len,
|
||||
annotated_file.file.get_line(line.line_index - 1).map_or(0, |s| s.len()),
|
||||
line.line_index
|
||||
.checked_sub(1)
|
||||
.and_then(|l| annotated_file.file.get_line(l))
|
||||
.map_or(0, |s| s.len()),
|
||||
);
|
||||
for ann in &line.annotations {
|
||||
span_right_margin = max(span_right_margin, ann.start_col.display);
|
||||
|
@ -1,8 +1,11 @@
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/mismatched-types.rs:2:20
|
||||
--> $DIR/file.txt:0:1
|
||||
|
|
||||
|
|
||||
::: $DIR/mismatched-types.rs:2:12
|
||||
|
|
||||
LL | let b: &[u8] = include_str!("file.txt");
|
||||
| ----- ^^^^^^^^^^^^^^^^^^^^^^^^ expected `&[u8]`, found `&str`
|
||||
| ----- ------------------------ in this macro invocation
|
||||
| |
|
||||
| expected due to this
|
||||
|
|
||||
|
Loading…
Reference in New Issue
Block a user