1
Fork 0

report_mismatch did not actually report anymore

This commit is contained in:
Oli Scherer 2024-02-22 14:24:25 +00:00
parent e3021eb245
commit e4622e0608
5 changed files with 15 additions and 11 deletions

View file

@ -154,7 +154,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
if prev.ty != ty { if prev.ty != ty {
let guar = ty.error_reported().err().unwrap_or_else(|| { let guar = ty.error_reported().err().unwrap_or_else(|| {
let (Ok(e) | Err(e)) = prev let (Ok(e) | Err(e)) = prev
.report_mismatch( .build_mismatch_error(
&OpaqueHiddenType { ty, span: concrete_type.span }, &OpaqueHiddenType { ty, span: concrete_type.span },
opaque_type_key.def_id, opaque_type_key.def_id,
infcx.tcx, infcx.tcx,

View file

@ -478,7 +478,7 @@ fn sanity_check_found_hidden_type<'tcx>(
} else { } else {
let span = tcx.def_span(key.def_id); let span = tcx.def_span(key.def_id);
let other = ty::OpaqueHiddenType { ty: hidden_ty, span }; let other = ty::OpaqueHiddenType { ty: hidden_ty, span };
Err(ty.report_mismatch(&other, key.def_id, tcx)?.emit()) Err(ty.build_mismatch_error(&other, key.def_id, tcx)?.emit())
} }
} }

View file

@ -59,7 +59,7 @@ pub(super) fn find_opaque_ty_constraints_for_impl_trait_in_assoc_type(
if !hidden.ty.references_error() { if !hidden.ty.references_error() {
for concrete_type in locator.typeck_types { for concrete_type in locator.typeck_types {
if concrete_type.ty != tcx.erase_regions(hidden.ty) { if concrete_type.ty != tcx.erase_regions(hidden.ty) {
if let Ok(d) = hidden.report_mismatch(&concrete_type, def_id, tcx) { if let Ok(d) = hidden.build_mismatch_error(&concrete_type, def_id, tcx) {
d.emit(); d.emit();
} }
} }
@ -135,7 +135,7 @@ pub(super) fn find_opaque_ty_constraints_for_tait(tcx: TyCtxt<'_>, def_id: Local
if !hidden.ty.references_error() { if !hidden.ty.references_error() {
for concrete_type in locator.typeck_types { for concrete_type in locator.typeck_types {
if concrete_type.ty != tcx.erase_regions(hidden.ty) { if concrete_type.ty != tcx.erase_regions(hidden.ty) {
if let Ok(d) = hidden.report_mismatch(&concrete_type, def_id, tcx) { if let Ok(d) = hidden.build_mismatch_error(&concrete_type, def_id, tcx) {
d.emit(); d.emit();
} }
} }
@ -289,7 +289,7 @@ impl TaitConstraintLocator<'_> {
if let Some(prev) = &mut self.found { if let Some(prev) = &mut self.found {
if concrete_type.ty != prev.ty { if concrete_type.ty != prev.ty {
let (Ok(guar) | Err(guar)) = prev let (Ok(guar) | Err(guar)) = prev
.report_mismatch(&concrete_type, self.def_id, self.tcx) .build_mismatch_error(&concrete_type, self.def_id, self.tcx)
.map(|d| d.emit()); .map(|d| d.emit());
prev.ty = Ty::new_error(self.tcx, guar); prev.ty = Ty::new_error(self.tcx, guar);
} }
@ -364,7 +364,7 @@ pub(super) fn find_opaque_ty_constraints_for_rpit<'tcx>(
); );
if let Some(prev) = &mut hir_opaque_ty { if let Some(prev) = &mut hir_opaque_ty {
if concrete_type.ty != prev.ty { if concrete_type.ty != prev.ty {
if let Ok(d) = prev.report_mismatch(&concrete_type, def_id, tcx) { if let Ok(d) = prev.build_mismatch_error(&concrete_type, def_id, tcx) {
d.stash( d.stash(
tcx.def_span(opaque_type_key.def_id), tcx.def_span(opaque_type_key.def_id),
StashKey::OpaqueHiddenTypeMismatch, StashKey::OpaqueHiddenTypeMismatch,
@ -441,7 +441,9 @@ impl RpitConstraintChecker<'_> {
debug!(?concrete_type, "found constraint"); debug!(?concrete_type, "found constraint");
if concrete_type.ty != self.found.ty { if concrete_type.ty != self.found.ty {
if let Ok(d) = self.found.report_mismatch(&concrete_type, self.def_id, self.tcx) { if let Ok(d) =
self.found.build_mismatch_error(&concrete_type, self.def_id, self.tcx)
{
d.emit(); d.emit();
} }
} }

View file

@ -589,9 +589,11 @@ impl<'cx, 'tcx> WritebackCx<'cx, 'tcx> {
&& last_opaque_ty.ty != hidden_type.ty && last_opaque_ty.ty != hidden_type.ty
{ {
assert!(!self.fcx.next_trait_solver()); assert!(!self.fcx.next_trait_solver());
if let Ok(d) = if let Ok(d) = hidden_type.build_mismatch_error(
hidden_type.report_mismatch(&last_opaque_ty, opaque_type_key.def_id, self.tcx()) &last_opaque_ty,
{ opaque_type_key.def_id,
self.tcx(),
) {
d.stash( d.stash(
self.tcx().def_span(opaque_type_key.def_id), self.tcx().def_span(opaque_type_key.def_id),
StashKey::OpaqueHiddenTypeMismatch, StashKey::OpaqueHiddenTypeMismatch,

View file

@ -840,7 +840,7 @@ pub struct OpaqueHiddenType<'tcx> {
} }
impl<'tcx> OpaqueHiddenType<'tcx> { impl<'tcx> OpaqueHiddenType<'tcx> {
pub fn report_mismatch( pub fn build_mismatch_error(
&self, &self,
other: &Self, other: &Self,
opaque_def_id: LocalDefId, opaque_def_id: LocalDefId,