Explain redundant mapping.

This commit is contained in:
Camille GILLOT 2022-10-24 17:15:42 +00:00
parent b77674d254
commit 94234065cf

View File

@ -1332,6 +1332,10 @@ pub fn remap_generic_params_to_declaration_params(
let id_substs = InternalSubsts::identity_for_item(tcx, def_id.to_def_id());
debug!(?id_substs);
// This zip may have several times the same lifetime in `substs` paired with a different
// lifetime from `id_substs`. In that case, we actually want to pick the last one, as it
// is the one we introduced in the impl-trait desugaring to be meaningful. The other ones
// are redundant.
let map = substs.iter().zip(id_substs);
let map: FxHashMap<GenericArg<'tcx>, GenericArg<'tcx>> = match origin {