summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2021-12-01 10:50:21 +0100
committerGitHub <noreply@github.com>2021-12-01 10:50:21 +0100
commitc09c16c0dff47b1ec143c266c3c06acdc84a4257 (patch)
treefd39fe268a98b6fc776bd12fa0f31766140295ff
parentd93df5775cbbd076bf438a4063c5c98a6293addf (diff)
parent6dfed31c4313c1eee7b1aa155e0761c5cdf7f128 (diff)
downloadrust-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.rs2
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);