mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-16 14:07:04 +00:00
Rename some methods to make it clear they're only for diagnostics
This commit is contained in:
parent
d8a646fe77
commit
f95059b715
@ -2864,13 +2864,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
(expr_t, "")
|
||||
};
|
||||
for (found_fields, args) in
|
||||
self.get_field_candidates_considering_privacy(span, ty, mod_id, id)
|
||||
self.get_field_candidates_considering_privacy_for_diag(span, ty, mod_id, id)
|
||||
{
|
||||
let field_names = found_fields.iter().map(|field| field.name).collect::<Vec<_>>();
|
||||
let mut candidate_fields: Vec<_> = found_fields
|
||||
.into_iter()
|
||||
.filter_map(|candidate_field| {
|
||||
self.check_for_nested_field_satisfying(
|
||||
self.check_for_nested_field_satisfying_condition_for_diag(
|
||||
span,
|
||||
&|candidate_field, _| candidate_field.ident(self.tcx()) == field,
|
||||
candidate_field,
|
||||
@ -2933,7 +2933,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
.with_span_label(field.span, "private field")
|
||||
}
|
||||
|
||||
pub(crate) fn get_field_candidates_considering_privacy(
|
||||
pub(crate) fn get_field_candidates_considering_privacy_for_diag(
|
||||
&self,
|
||||
span: Span,
|
||||
base_ty: Ty<'tcx>,
|
||||
@ -2986,7 +2986,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
|
||||
/// This method is called after we have encountered a missing field error to recursively
|
||||
/// search for the field
|
||||
pub(crate) fn check_for_nested_field_satisfying(
|
||||
pub(crate) fn check_for_nested_field_satisfying_condition_for_diag(
|
||||
&self,
|
||||
span: Span,
|
||||
matches: &impl Fn(&ty::FieldDef, Ty<'tcx>) -> bool,
|
||||
@ -3011,20 +3011,24 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
if matches(candidate_field, field_ty) {
|
||||
return Some(field_path);
|
||||
} else {
|
||||
for (nested_fields, subst) in
|
||||
self.get_field_candidates_considering_privacy(span, field_ty, mod_id, hir_id)
|
||||
for (nested_fields, subst) in self
|
||||
.get_field_candidates_considering_privacy_for_diag(
|
||||
span, field_ty, mod_id, hir_id,
|
||||
)
|
||||
{
|
||||
// recursively search fields of `candidate_field` if it's a ty::Adt
|
||||
for field in nested_fields {
|
||||
if let Some(field_path) = self.check_for_nested_field_satisfying(
|
||||
span,
|
||||
matches,
|
||||
field,
|
||||
subst,
|
||||
field_path.clone(),
|
||||
mod_id,
|
||||
hir_id,
|
||||
) {
|
||||
if let Some(field_path) = self
|
||||
.check_for_nested_field_satisfying_condition_for_diag(
|
||||
span,
|
||||
matches,
|
||||
field,
|
||||
subst,
|
||||
field_path.clone(),
|
||||
mod_id,
|
||||
hir_id,
|
||||
)
|
||||
{
|
||||
return Some(field_path);
|
||||
}
|
||||
}
|
||||
|
@ -2675,9 +2675,12 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
) {
|
||||
if let SelfSource::MethodCall(expr) = source {
|
||||
let mod_id = self.tcx.parent_module(expr.hir_id).to_def_id();
|
||||
for (fields, args) in
|
||||
self.get_field_candidates_considering_privacy(span, actual, mod_id, expr.hir_id)
|
||||
{
|
||||
for (fields, args) in self.get_field_candidates_considering_privacy_for_diag(
|
||||
span,
|
||||
actual,
|
||||
mod_id,
|
||||
expr.hir_id,
|
||||
) {
|
||||
let call_expr = self.tcx.hir().expect_expr(self.tcx.parent_hir_id(expr.hir_id));
|
||||
|
||||
let lang_items = self.tcx.lang_items();
|
||||
@ -2693,7 +2696,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
let mut candidate_fields: Vec<_> = fields
|
||||
.into_iter()
|
||||
.filter_map(|candidate_field| {
|
||||
self.check_for_nested_field_satisfying(
|
||||
self.check_for_nested_field_satisfying_condition_for_diag(
|
||||
span,
|
||||
&|_, field_ty| {
|
||||
self.lookup_probe_for_diagnostic(
|
||||
|
Loading…
Reference in New Issue
Block a user