Rollup merge of #119891 - lcnr:rename-field, r=compiler-errors
rename `reported_signature_mismatch` to reflect its use it's used for a lot of things, not only closures
This commit is contained in:
commit
e79ccc4582
@ -84,7 +84,7 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
selection_cache: self.selection_cache.clone(),
|
selection_cache: self.selection_cache.clone(),
|
||||||
evaluation_cache: self.evaluation_cache.clone(),
|
evaluation_cache: self.evaluation_cache.clone(),
|
||||||
reported_trait_errors: self.reported_trait_errors.clone(),
|
reported_trait_errors: self.reported_trait_errors.clone(),
|
||||||
reported_closure_mismatch: self.reported_closure_mismatch.clone(),
|
reported_signature_mismatch: self.reported_signature_mismatch.clone(),
|
||||||
tainted_by_errors: self.tainted_by_errors.clone(),
|
tainted_by_errors: self.tainted_by_errors.clone(),
|
||||||
err_count_on_creation: self.err_count_on_creation,
|
err_count_on_creation: self.err_count_on_creation,
|
||||||
universe: self.universe.clone(),
|
universe: self.universe.clone(),
|
||||||
|
@ -278,7 +278,7 @@ pub struct InferCtxt<'tcx> {
|
|||||||
/// avoid reporting the same error twice.
|
/// avoid reporting the same error twice.
|
||||||
pub reported_trait_errors: RefCell<FxIndexMap<Span, Vec<ty::Predicate<'tcx>>>>,
|
pub reported_trait_errors: RefCell<FxIndexMap<Span, Vec<ty::Predicate<'tcx>>>>,
|
||||||
|
|
||||||
pub reported_closure_mismatch: RefCell<FxHashSet<(Span, Option<Span>)>>,
|
pub reported_signature_mismatch: RefCell<FxHashSet<(Span, Option<Span>)>>,
|
||||||
|
|
||||||
/// When an error occurs, we want to avoid reporting "derived"
|
/// When an error occurs, we want to avoid reporting "derived"
|
||||||
/// errors that are due to this original failure. Normally, we
|
/// errors that are due to this original failure. Normally, we
|
||||||
@ -702,7 +702,7 @@ impl<'tcx> InferCtxtBuilder<'tcx> {
|
|||||||
selection_cache: Default::default(),
|
selection_cache: Default::default(),
|
||||||
evaluation_cache: Default::default(),
|
evaluation_cache: Default::default(),
|
||||||
reported_trait_errors: Default::default(),
|
reported_trait_errors: Default::default(),
|
||||||
reported_closure_mismatch: Default::default(),
|
reported_signature_mismatch: Default::default(),
|
||||||
tainted_by_errors: Cell::new(None),
|
tainted_by_errors: Cell::new(None),
|
||||||
err_count_on_creation: tcx.dcx().err_count(),
|
err_count_on_creation: tcx.dcx().err_count(),
|
||||||
universe: Cell::new(ty::UniverseIndex::ROOT),
|
universe: Cell::new(ty::UniverseIndex::ROOT),
|
||||||
|
@ -3459,14 +3459,12 @@ impl<'tcx> InferCtxtPrivExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
|||||||
let found_node = found_did.and_then(|did| self.tcx.hir().get_if_local(did));
|
let found_node = found_did.and_then(|did| self.tcx.hir().get_if_local(did));
|
||||||
let found_span = found_did.and_then(|did| self.tcx.hir().span_if_local(did));
|
let found_span = found_did.and_then(|did| self.tcx.hir().span_if_local(did));
|
||||||
|
|
||||||
if self.reported_closure_mismatch.borrow().contains(&(span, found_span)) {
|
if !self.reported_signature_mismatch.borrow_mut().insert((span, found_span)) {
|
||||||
// We check closures twice, with obligations flowing in different directions,
|
// We check closures twice, with obligations flowing in different directions,
|
||||||
// but we want to complain about them only once.
|
// but we want to complain about them only once.
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.reported_closure_mismatch.borrow_mut().insert((span, found_span));
|
|
||||||
|
|
||||||
let mut not_tupled = false;
|
let mut not_tupled = false;
|
||||||
|
|
||||||
let found = match found_trait_ref.skip_binder().args.type_at(1).kind() {
|
let found = match found_trait_ref.skip_binder().args.type_at(1).kind() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user