normalize receiver substs and erase the regions

use a smaller example
This commit is contained in:
Takayuki Maeda 2022-12-12 22:11:33 +09:00
parent f34356eace
commit 3bc54baa61
2 changed files with 66 additions and 1 deletions

View file

@ -44,7 +44,13 @@ fn inner_resolve_instance<'tcx>(
let result = if let Some(trait_def_id) = tcx.trait_of_item(def.did) {
debug!(" => associated item, attempting to find impl in param_env {:#?}", param_env);
resolve_associated_item(tcx, def.did, param_env, trait_def_id, substs)
resolve_associated_item(
tcx,
def.did,
param_env,
trait_def_id,
tcx.normalize_erasing_regions(param_env, substs),
)
} else {
let ty = tcx.type_of(def.def_id_for_type_of());
let item_type = tcx.subst_and_normalize_erasing_regions(substs, param_env, ty);