Rollup merge of #42616 - estebank:span-fix, r=nikomatsakis
Position span label correctly when it isn't last Fix #42595. Before: ``` 15 | map.entry("e").or_insert(0) += 1; | ---------------------------^^^^^ot use `+=` on type `&mut {integer}` ``` After: ``` 15 | map.entry("e").or_insert(0) += 1; | ---------------------------^^^^^ | | | cannot use `+=` on type `&mut {integer}` ```
This commit is contained in:
commit
f784e5f136
@ -445,8 +445,11 @@ fn render_source_line(&self,
|
||||
&& next.has_label()) // multiline start/end, move it to a new line
|
||||
|| (annotation.has_label() // so as not to overlap the orizontal lines.
|
||||
&& next.takes_space())
|
||||
|| (annotation.takes_space()
|
||||
&& next.takes_space())
|
||||
|| (annotation.takes_space() && next.takes_space())
|
||||
|| (overlaps(next, annotation, l)
|
||||
&& next.end_col <= annotation.end_col
|
||||
&& next.has_label()
|
||||
&& p == 0) // Avoid #42595.
|
||||
{
|
||||
// This annotation needs a new line in the output.
|
||||
p += 1;
|
||||
|
@ -735,6 +735,49 @@ fn foo() {
|
||||
"#);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn multiple_labels_secondary_without_message_3() {
|
||||
test_harness(r#"
|
||||
fn foo() {
|
||||
a bc d
|
||||
}
|
||||
"#,
|
||||
vec![
|
||||
SpanLabel {
|
||||
start: Position {
|
||||
string: "a",
|
||||
count: 1,
|
||||
},
|
||||
end: Position {
|
||||
string: "b",
|
||||
count: 1,
|
||||
},
|
||||
label: "`a` is a good letter",
|
||||
},
|
||||
SpanLabel {
|
||||
start: Position {
|
||||
string: "c",
|
||||
count: 1,
|
||||
},
|
||||
end: Position {
|
||||
string: "d",
|
||||
count: 1,
|
||||
},
|
||||
label: "",
|
||||
},
|
||||
],
|
||||
r#"
|
||||
error: foo
|
||||
--> test.rs:3:3
|
||||
|
|
||||
3 | a bc d
|
||||
| ^^^^----
|
||||
| |
|
||||
| `a` is a good letter
|
||||
|
||||
"#);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn multiple_labels_without_message() {
|
||||
test_harness(r#"
|
||||
|
Loading…
Reference in New Issue
Block a user