Split out IntoIterator and non-Iterator constructors for AliasTy/AliasTerm/TraitRef/projection

This commit is contained in:
Michael Goulet
2024-06-21 13:33:08 -04:00
parent 06c072f158
commit f26cc349d9
35 changed files with 144 additions and 84 deletions

View File

@@ -940,7 +940,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
let ty = traits::normalize_projection_ty(
self,
param_env,
ty::AliasTy::new(tcx, tcx.lang_items().deref_target()?, trait_ref.args),
ty::AliasTy::new_from_args(tcx, tcx.lang_items().deref_target()?, trait_ref.args),
cause.clone(),
0,
// We're *intentionally* throwing these away,

View File

@@ -2487,7 +2487,7 @@ impl<'tcx> SelectionContext<'_, 'tcx> {
trait_def_id,
&[normalized_ty.into()],
);
ty::TraitRef::new(tcx, trait_def_id, err_args)
ty::TraitRef::new_from_args(tcx, trait_def_id, err_args)
};
let obligation = Obligation::new(self.tcx(), cause.clone(), param_env, trait_ref);