about summary refs log tree commit diff
diff options
context:
space:
mode:
authorScott Schafer <schaferjscott@gmail.com>2025-06-26 18:21:47 -0600
committerScott Schafer <schaferjscott@gmail.com>2025-06-30 19:24:22 -0600
commitc8fac7779e75c16cfb49d7bb95809dbb6e19d5f7 (patch)
tree562e234892a1250693abf27b685588cf77657edc
parentf26e58023071e71636a3c72ac3a2bf89b1f76706 (diff)
downloadrust-c8fac7779e75c16cfb49d7bb95809dbb6e19d5f7.tar.gz
rust-c8fac7779e75c16cfb49d7bb95809dbb6e19d5f7.zip
fix: Emit suggestion filename if primary diagnostic span is dummy
-rw-r--r--compiler/rustc_errors/src/emitter.rs4
-rw-r--r--tests/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr1
2 files changed, 4 insertions, 1 deletions
diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs
index e333de4b660..3f5872f34a6 100644
--- a/compiler/rustc_errors/src/emitter.rs
+++ b/compiler/rustc_errors/src/emitter.rs
@@ -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();
diff --git a/tests/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr b/tests/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr
index a9b45a18af3..f53e9e3b478 100644
--- a/tests/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr
+++ b/tests/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr
@@ -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;
    |                  ++++++++++++