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 rust-c09c16c0dff47b1ec143c266c3c06acdc84a4257.zip | |
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); |
