Rollup merge of #143264 - Muscraft:fix-suggestion-filename, r=compiler-errors
fix: Emit suggestion filename if primary diagnostic span is dummy
While working on using `annotate-snippets` as `rustc`'s emitter, I came across [`tests/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr`](b03b3a7ec9/tests/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr), which lacked a filename for both the annotation and the suggestion, which seemed like a bug to me. After some investigation, I found that this is happening because the primary span is a dummy, so its filename doesn't get output, and its filename matches the one for the suggestion, so the suggestion's filename doesn't get output. To fix this issue, I made it so that the filename for a suggestion will get output if the primary span is a dummy.
This commit is contained in:
commit
3944c8ce44
2 changed files with 4 additions and 1 deletions
|
|
@ -2078,7 +2078,9 @@ impl HumanEmitter {
|
|||
// file name, saving in verbosity, but if it *isn't* we do need it, otherwise we're
|
||||
// telling users to make a change but not clarifying *where*.
|
||||
let loc = sm.lookup_char_pos(parts[0].span.lo());
|
||||
if loc.file.name != sm.span_to_filename(span) && loc.file.name.is_real() {
|
||||
if (span.is_dummy() || loc.file.name != sm.span_to_filename(span))
|
||||
&& loc.file.name.is_real()
|
||||
{
|
||||
// --> file.rs:line:col
|
||||
// |
|
||||
let arrow = self.file_start();
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ error[E0259]: the name `std` is defined multiple times
|
|||
|
|
||||
= note: `std` must be defined only once in the type namespace of this module
|
||||
help: you can use `as` to change the binding name of the import
|
||||
--> $DIR/resolve-conflict-extern-crate-vs-extern-crate.rs:1:17
|
||||
|
|
||||
LL | extern crate std as other_std;
|
||||
| ++++++++++++
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue