1
Fork 0

Move check for error in impl header outside of reporting

This commit is contained in:
Michael Goulet 2024-03-22 14:45:00 -04:00
parent b3df0d7e5e
commit 5333f2a9d1
4 changed files with 65 additions and 4 deletions

View file

@ -402,10 +402,6 @@ fn report_conflicting_impls<'tcx>(
impl_span: Span,
err: &mut Diag<'_, G>,
) {
if (overlap.trait_ref, overlap.self_ty).references_error() {
err.downgrade_to_delayed_bug();
}
match tcx.span_of_impl(overlap.with_impl) {
Ok(span) => {
err.span_label(span, "first implementation here");
@ -458,6 +454,11 @@ fn report_conflicting_impls<'tcx>(
)
});
// Don't report overlap errors if the header references error
if let Err(err) = (overlap.trait_ref, overlap.self_ty).error_reported() {
return Err(err);
}
match used_to_be_allowed {
None => {
let reported = if overlap.with_impl.is_local()