Rollup merge of #99008 - obeis:issue-98974, r=compiler-errors
Adding suggestion for E0530 Closes #98974
This commit is contained in:
commit
d75a5723db
7 changed files with 52 additions and 19 deletions
|
@ -28,7 +28,7 @@ use rustc_span::{BytePos, Span};
|
|||
use tracing::debug;
|
||||
|
||||
use crate::imports::{Import, ImportKind, ImportResolver};
|
||||
use crate::late::Rib;
|
||||
use crate::late::{PatternSource, Rib};
|
||||
use crate::path_names_to_string;
|
||||
use crate::{AmbiguityError, AmbiguityErrorMisc, AmbiguityKind, BindingError, Finalize};
|
||||
use crate::{HasGenericParams, MacroRulesScope, Module, ModuleKind, ModuleOrUniformRoot};
|
||||
|
@ -896,25 +896,40 @@ impl<'a> Resolver<'a> {
|
|||
err
|
||||
}
|
||||
ResolutionError::BindingShadowsSomethingUnacceptable {
|
||||
shadowing_binding_descr,
|
||||
shadowing_binding,
|
||||
name,
|
||||
participle,
|
||||
article,
|
||||
shadowed_binding_descr,
|
||||
shadowed_binding,
|
||||
shadowed_binding_span,
|
||||
} => {
|
||||
let shadowed_binding_descr = shadowed_binding.descr();
|
||||
let mut err = struct_span_err!(
|
||||
self.session,
|
||||
span,
|
||||
E0530,
|
||||
"{}s cannot shadow {}s",
|
||||
shadowing_binding_descr,
|
||||
shadowing_binding.descr(),
|
||||
shadowed_binding_descr,
|
||||
);
|
||||
err.span_label(
|
||||
span,
|
||||
format!("cannot be named the same as {} {}", article, shadowed_binding_descr),
|
||||
);
|
||||
match (shadowing_binding, shadowed_binding) {
|
||||
(
|
||||
PatternSource::Match,
|
||||
Res::Def(DefKind::Ctor(CtorOf::Variant | CtorOf::Struct, CtorKind::Fn), _),
|
||||
) => {
|
||||
err.span_suggestion(
|
||||
span,
|
||||
"try specify the pattern arguments",
|
||||
format!("{}(..)", name),
|
||||
Applicability::Unspecified,
|
||||
);
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
let msg =
|
||||
format!("the {} `{}` is {} here", shadowed_binding_descr, name, participle);
|
||||
err.span_label(shadowed_binding_span, msg);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue