diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs index a1472479afa89f001154453cfb3fa490e3a0ba39..c3d594204f413de24eeeb0ab860a88c37a52170a 100644 --- a/src/librustc_errors/emitter.rs +++ b/src/librustc_errors/emitter.rs @@ -268,6 +268,7 @@ fn add_annotation_to_file(file_vec: &mut Vec, // 6..7. This is degenerate input, but it's best to degrade // gracefully -- and the parser likes to supply a span like // that for EOF, in particular. + if lo.col_display == hi.col_display && lo.line == hi.line { hi.col_display += 1; } @@ -547,6 +548,15 @@ fn render_source_line(&self, && j > i // multiline lines). && p == 0 // We're currently on the first line, move the label one line down { + // If we're overlapping with an un-labelled annotation with the same span + // we can just merge them in the output + if next.start_col == annotation.start_col + && next.end_col == annotation.end_col + && !next.has_label() + { + continue; + } + // This annotation needs a new line in the output. p += 1; break; diff --git a/src/test/ui/issue-60075.stderr b/src/test/ui/issue-60075.stderr index 244aef2d1f0f5aad7d4706be7a4167cb0e943d9c..ac97d32a6e15b7f05e553b5f455adac50007656f 100644 --- a/src/test/ui/issue-60075.stderr +++ b/src/test/ui/issue-60075.stderr @@ -11,9 +11,7 @@ LL | fn qux() -> Option { | - unclosed delimiter LL | let _ = if true { LL | }); - | ^ - | | - | help: `}` may belong here + | ^ help: `}` may belong here error: expected identifier, found `;` --> $DIR/issue-60075.rs:6:11 diff --git a/src/test/ui/issues/issue-58856-1.stderr b/src/test/ui/issues/issue-58856-1.stderr index 20cdf55365fc77a4b57d40e340875f3ddc457158..58ab0a142d6f1c29236c957da827a642ec2c74ea 100644 --- a/src/test/ui/issues/issue-58856-1.stderr +++ b/src/test/ui/issues/issue-58856-1.stderr @@ -2,9 +2,8 @@ error: expected one of `)`, `,`, or `:`, found `>` --> $DIR/issue-58856-1.rs:2:14 | LL | fn b(self> - | - ^ - | | | - | | help: `)` may belong here + | - ^ help: `)` may belong here + | | | unclosed delimiter error: aborting due to previous error diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr index 6484e63223eff7be9e3e533bd6e90725e9edc2ec..b49ee0cfc7033407fcf9d2dd6b70ad4e0cf7ae5c 100644 --- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr +++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr @@ -2,9 +2,7 @@ error[E0623]: lifetime mismatch --> $DIR/ex3-both-anon-regions-both-are-structs-3.rs:7:11 | LL | fn foo(mut x: Ref) { - | --- - | | - | this type is declared with multiple lifetimes... + | --- this type is declared with multiple lifetimes... LL | x.a = x.b; | ^^^ ...but data with one lifetime flows into the other here diff --git a/src/test/ui/parser/issue-10636-2.stderr b/src/test/ui/parser/issue-10636-2.stderr index 38d57ce57236556b51c54a1b974529ae6d6503c3..5b9a9b7f06c39aa9fd06b551bf50509d27e9cc58 100644 --- a/src/test/ui/parser/issue-10636-2.stderr +++ b/src/test/ui/parser/issue-10636-2.stderr @@ -2,9 +2,8 @@ error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;` --> $DIR/issue-10636-2.rs:5:25 | LL | option.map(|some| 42; - | - ^ - | | | - | | help: `)` may belong here + | - ^ help: `)` may belong here + | | | unclosed delimiter error: expected expression, found `)` diff --git a/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr b/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr index 309106e856a9892fa8c7bf3e4f9e660bb555ee38..6b3a488805f972ddfa1c7aaf91b744f955a01261 100644 --- a/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr +++ b/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr @@ -2,9 +2,7 @@ error[E0623]: lifetime mismatch --> $DIR/regions-variance-contravariant-use-covariant-in-second-position.rs:25:30 | LL | fn use_<'short,'long>(c: S<'long, 'short>, - | ---------------- - | | - | this type is declared with multiple lifetimes... + | ---------------- this type is declared with multiple lifetimes... ... LL | let _: S<'long, 'long> = c; | ^ ...but data with one lifetime flows into the other here diff --git a/src/test/ui/resolve/token-error-correct-3.stderr b/src/test/ui/resolve/token-error-correct-3.stderr index 5e965e0952c53660717e47747cfa46d43cecddd2..607573f27698b4af7e3734d4721b7dcadfbe504e 100644 --- a/src/test/ui/resolve/token-error-correct-3.stderr +++ b/src/test/ui/resolve/token-error-correct-3.stderr @@ -2,9 +2,8 @@ error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;` --> $DIR/token-error-correct-3.rs:15:35 | LL | callback(path.as_ref(); - | - ^ - | | | - | | help: `)` may belong here + | - ^ help: `)` may belong here + | | | unclosed delimiter error: expected one of `.`, `;`, `?`, `}`, or an operator, found `)`