diff options
author | Matthias Krüger <matthias.krueger@famsik.de> | 2021-12-01 10:50:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-01 10:50:21 +0100 |
commit | c09c16c0dff47b1ec143c266c3c06acdc84a4257 (patch) | |
tree | fd39fe268a98b6fc776bd12fa0f31766140295ff | |
parent | d93df5775cbbd076bf438a4063c5c98a6293addf (diff) | |
parent | 6dfed31c4313c1eee7b1aa155e0761c5cdf7f128 (diff) | |
download | rust-c09c16c0dff47b1ec143c266c3c06acdc84a4257.tar.gz |
Rollup merge of #91298 - FabianWolff:issue-91028-source-avail, r=cjgillot
Improve error message for `E0659` if the source is not available
Fixes #91028. The fix is similar to those in #89233 and #87088. With this change, instead of the dangling
```
note: `Option` could also refer to the enum defined here
```
I get
```
note: `Option` could also refer to an enum from prelude
```
If the standard library source code _is_ available, the output does not change.
-rw-r--r-- | compiler/rustc_resolve/src/diagnostics.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_resolve/src/diagnostics.rs b/compiler/rustc_resolve/src/diagnostics.rs index 2e4cb4ff727..6a13627a563 100644 --- a/compiler/rustc_resolve/src/diagnostics.rs +++ b/compiler/rustc_resolve/src/diagnostics.rs @@ -1178,7 +1178,7 @@ impl<'a> Resolver<'a> { fn binding_description(&self, b: &NameBinding<'_>, ident: Ident, from_prelude: bool) -> String { let res = b.res(); - if b.span.is_dummy() { + if b.span.is_dummy() || self.session.source_map().span_to_snippet(b.span).is_err() { // These already contain the "built-in" prefix or look bad with it. let add_built_in = !matches!(b.res(), Res::NonMacroAttr(..) | Res::PrimTy(..) | Res::ToolMod); |