Skip to content

Commit 166d602

Browse files
committed
Liberate before normalizing in wfcheck
1 parent aa65b08 commit 166d602

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

compiler/rustc_typeck/src/check/wfcheck.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,6 @@ fn check_associated_item(
406406
}
407407
ty::AssocKind::Fn => {
408408
let sig = fcx.tcx.fn_sig(item.def_id);
409-
let sig = fcx.normalize_associated_types_in(span, sig);
410409
let hir_sig = sig_if_method.expect("bad signature for method");
411410
check_fn_or_method(
412411
fcx,
@@ -611,7 +610,6 @@ fn check_item_fn(
611610
for_id(tcx, item_id, span).with_fcx(|fcx| {
612611
let def_id = tcx.hir().local_def_id(item_id);
613612
let sig = tcx.fn_sig(def_id);
614-
let sig = fcx.normalize_associated_types_in(span, sig);
615613
let mut implied_bounds = vec![];
616614
check_fn_or_method(fcx, ident.span, sig, decl, def_id.to_def_id(), &mut implied_bounds);
617615
implied_bounds
@@ -902,8 +900,8 @@ fn check_fn_or_method<'fcx, 'tcx>(
902900
def_id: DefId,
903901
implied_bounds: &mut Vec<Ty<'tcx>>,
904902
) {
905-
let sig = fcx.normalize_associated_types_in(span, sig);
906903
let sig = fcx.tcx.liberate_late_bound_regions(def_id, sig);
904+
let sig = fcx.normalize_associated_types_in(span, sig);
907905

908906
for (&input_ty, ty) in iter::zip(sig.inputs(), hir_decl.inputs) {
909907
fcx.register_wf_obligation(input_ty.into(), ty.span, ObligationCauseCode::MiscObligation);
@@ -1081,8 +1079,8 @@ fn check_method_receiver<'fcx, 'tcx>(
10811079
let span = fn_sig.decl.inputs[0].span;
10821080

10831081
let sig = fcx.tcx.fn_sig(method.def_id);
1084-
let sig = fcx.normalize_associated_types_in(span, sig);
10851082
let sig = fcx.tcx.liberate_late_bound_regions(method.def_id, sig);
1083+
let sig = fcx.normalize_associated_types_in(span, sig);
10861084

10871085
debug!("check_method_receiver: sig={:?}", sig);
10881086

0 commit comments

Comments
 (0)