drive-by: style nits
This commit is contained in:
parent
94e047ba3b
commit
0a95878972
1 changed files with 19 additions and 25 deletions
|
@ -14,10 +14,8 @@ use rustc_infer::traits::util;
|
||||||
use rustc_middle::ty::error::{ExpectedFound, TypeError};
|
use rustc_middle::ty::error::{ExpectedFound, TypeError};
|
||||||
use rustc_middle::ty::util::ExplicitSelf;
|
use rustc_middle::ty::util::ExplicitSelf;
|
||||||
use rustc_middle::ty::{
|
use rustc_middle::ty::{
|
||||||
self, AssocItem, DefIdTree, TraitRef, Ty, TypeFoldable, TypeFolder, TypeSuperFoldable,
|
self, DefIdTree, InternalSubsts, Ty, TypeFoldable, TypeFolder, TypeSuperFoldable, TypeVisitable,
|
||||||
TypeVisitable,
|
|
||||||
};
|
};
|
||||||
use rustc_middle::ty::{FnSig, InternalSubsts};
|
|
||||||
use rustc_middle::ty::{GenericParamDefKind, ToPredicate, TyCtxt};
|
use rustc_middle::ty::{GenericParamDefKind, ToPredicate, TyCtxt};
|
||||||
use rustc_span::Span;
|
use rustc_span::Span;
|
||||||
use rustc_trait_selection::traits::error_reporting::TypeErrCtxtExt;
|
use rustc_trait_selection::traits::error_reporting::TypeErrCtxtExt;
|
||||||
|
@ -144,9 +142,9 @@ pub(crate) fn compare_impl_method<'tcx>(
|
||||||
#[instrument(level = "debug", skip(tcx, impl_m_span, impl_trait_ref))]
|
#[instrument(level = "debug", skip(tcx, impl_m_span, impl_trait_ref))]
|
||||||
fn compare_predicate_entailment<'tcx>(
|
fn compare_predicate_entailment<'tcx>(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
impl_m: &AssocItem,
|
impl_m: &ty::AssocItem,
|
||||||
impl_m_span: Span,
|
impl_m_span: Span,
|
||||||
trait_m: &AssocItem,
|
trait_m: &ty::AssocItem,
|
||||||
impl_trait_ref: ty::TraitRef<'tcx>,
|
impl_trait_ref: ty::TraitRef<'tcx>,
|
||||||
) -> Result<(), ErrorGuaranteed> {
|
) -> Result<(), ErrorGuaranteed> {
|
||||||
let trait_to_impl_substs = impl_trait_ref.substs;
|
let trait_to_impl_substs = impl_trait_ref.substs;
|
||||||
|
@ -157,8 +155,7 @@ fn compare_predicate_entailment<'tcx>(
|
||||||
// FIXME(@lcnr): remove that after removing `cause.body_id` from
|
// FIXME(@lcnr): remove that after removing `cause.body_id` from
|
||||||
// obligations.
|
// obligations.
|
||||||
let impl_m_hir_id = tcx.hir().local_def_id_to_hir_id(impl_m.def_id.expect_local());
|
let impl_m_hir_id = tcx.hir().local_def_id_to_hir_id(impl_m.def_id.expect_local());
|
||||||
// We sometimes modify the span further down.
|
let cause = ObligationCause::new(
|
||||||
let mut cause = ObligationCause::new(
|
|
||||||
impl_m_span,
|
impl_m_span,
|
||||||
impl_m_hir_id,
|
impl_m_hir_id,
|
||||||
ObligationCauseCode::CompareImplItemObligation {
|
ObligationCauseCode::CompareImplItemObligation {
|
||||||
|
@ -307,14 +304,13 @@ fn compare_predicate_entailment<'tcx>(
|
||||||
debug!(?terr, "sub_types failed: impl ty {:?}, trait ty {:?}", impl_fty, trait_fty);
|
debug!(?terr, "sub_types failed: impl ty {:?}, trait ty {:?}", impl_fty, trait_fty);
|
||||||
|
|
||||||
let emitted = report_trait_method_mismatch(
|
let emitted = report_trait_method_mismatch(
|
||||||
tcx,
|
|
||||||
&mut cause,
|
|
||||||
&infcx,
|
&infcx,
|
||||||
|
cause,
|
||||||
terr,
|
terr,
|
||||||
(trait_m, trait_fty),
|
(trait_m, trait_fty),
|
||||||
(impl_m, impl_fty),
|
(impl_m, impl_fty),
|
||||||
&trait_sig,
|
trait_sig,
|
||||||
&impl_trait_ref,
|
impl_trait_ref,
|
||||||
);
|
);
|
||||||
return Err(emitted);
|
return Err(emitted);
|
||||||
}
|
}
|
||||||
|
@ -360,7 +356,7 @@ pub fn collect_trait_impl_trait_tys<'tcx>(
|
||||||
|
|
||||||
let impl_m_hir_id = tcx.hir().local_def_id_to_hir_id(impl_m.def_id.expect_local());
|
let impl_m_hir_id = tcx.hir().local_def_id_to_hir_id(impl_m.def_id.expect_local());
|
||||||
let return_span = tcx.hir().fn_decl_by_hir_id(impl_m_hir_id).unwrap().output.span();
|
let return_span = tcx.hir().fn_decl_by_hir_id(impl_m_hir_id).unwrap().output.span();
|
||||||
let mut cause = ObligationCause::new(
|
let cause = ObligationCause::new(
|
||||||
return_span,
|
return_span,
|
||||||
impl_m_hir_id,
|
impl_m_hir_id,
|
||||||
ObligationCauseCode::CompareImplItemObligation {
|
ObligationCauseCode::CompareImplItemObligation {
|
||||||
|
@ -457,14 +453,13 @@ pub fn collect_trait_impl_trait_tys<'tcx>(
|
||||||
// emit an error now because `compare_predicate_entailment` will not report the error
|
// emit an error now because `compare_predicate_entailment` will not report the error
|
||||||
// when normalization fails.
|
// when normalization fails.
|
||||||
let emitted = report_trait_method_mismatch(
|
let emitted = report_trait_method_mismatch(
|
||||||
tcx,
|
|
||||||
&mut cause,
|
|
||||||
infcx,
|
infcx,
|
||||||
|
cause,
|
||||||
terr,
|
terr,
|
||||||
(trait_m, trait_fty),
|
(trait_m, trait_fty),
|
||||||
(impl_m, impl_fty),
|
(impl_m, impl_fty),
|
||||||
&trait_sig,
|
trait_sig,
|
||||||
&impl_trait_ref,
|
impl_trait_ref,
|
||||||
);
|
);
|
||||||
return Err(emitted);
|
return Err(emitted);
|
||||||
}
|
}
|
||||||
|
@ -634,23 +629,21 @@ impl<'tcx> TypeFolder<'tcx> for ImplTraitInTraitCollector<'_, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn report_trait_method_mismatch<'tcx>(
|
fn report_trait_method_mismatch<'tcx>(
|
||||||
tcx: TyCtxt<'tcx>,
|
|
||||||
cause: &mut ObligationCause<'tcx>,
|
|
||||||
infcx: &InferCtxt<'tcx>,
|
infcx: &InferCtxt<'tcx>,
|
||||||
|
mut cause: ObligationCause<'tcx>,
|
||||||
terr: TypeError<'tcx>,
|
terr: TypeError<'tcx>,
|
||||||
(trait_m, trait_fty): (&AssocItem, Ty<'tcx>),
|
(trait_m, trait_fty): (&ty::AssocItem, Ty<'tcx>),
|
||||||
(impl_m, impl_fty): (&AssocItem, Ty<'tcx>),
|
(impl_m, impl_fty): (&ty::AssocItem, Ty<'tcx>),
|
||||||
trait_sig: &FnSig<'tcx>,
|
trait_sig: ty::FnSig<'tcx>,
|
||||||
impl_trait_ref: &TraitRef<'tcx>,
|
impl_trait_ref: ty::TraitRef<'tcx>,
|
||||||
) -> ErrorGuaranteed {
|
) -> ErrorGuaranteed {
|
||||||
|
let tcx = infcx.tcx;
|
||||||
let (impl_err_span, trait_err_span) =
|
let (impl_err_span, trait_err_span) =
|
||||||
extract_spans_for_error_reporting(&infcx, terr, &cause, impl_m, trait_m);
|
extract_spans_for_error_reporting(&infcx, terr, &cause, impl_m, trait_m);
|
||||||
|
|
||||||
cause.span = impl_err_span;
|
|
||||||
|
|
||||||
let mut diag = struct_span_err!(
|
let mut diag = struct_span_err!(
|
||||||
tcx.sess,
|
tcx.sess,
|
||||||
cause.span(),
|
impl_err_span,
|
||||||
E0053,
|
E0053,
|
||||||
"method `{}` has an incompatible type for trait",
|
"method `{}` has an incompatible type for trait",
|
||||||
trait_m.name
|
trait_m.name
|
||||||
|
@ -721,6 +714,7 @@ fn report_trait_method_mismatch<'tcx>(
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cause.span = impl_err_span;
|
||||||
infcx.err_ctxt().note_type_err(
|
infcx.err_ctxt().note_type_err(
|
||||||
&mut diag,
|
&mut diag,
|
||||||
&cause,
|
&cause,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue