Rip out old effects var handling code from traits
This commit is contained in:
parent
91a458f451
commit
d8b2f9364d
@ -190,15 +190,6 @@ fn is_same_generics<'tcx>(
|
|||||||
.enumerate()
|
.enumerate()
|
||||||
.skip(1) // skip `Self` implicit arg
|
.skip(1) // skip `Self` implicit arg
|
||||||
.all(|(arg_index, arg)| {
|
.all(|(arg_index, arg)| {
|
||||||
if [
|
|
||||||
implied_by_generics.host_effect_index,
|
|
||||||
implied_generics.host_effect_index,
|
|
||||||
]
|
|
||||||
.contains(&Some(arg_index))
|
|
||||||
{
|
|
||||||
// skip host effect params in determining whether generics are same
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if let Some(ty) = arg.as_type() {
|
if let Some(ty) = arg.as_type() {
|
||||||
if let &ty::Param(ty::ParamTy { index, .. }) = ty.kind()
|
if let &ty::Param(ty::ParamTy { index, .. }) = ty.kind()
|
||||||
// `index == 0` means that it's referring to `Self`,
|
// `index == 0` means that it's referring to `Self`,
|
||||||
|
@ -274,23 +274,10 @@ pub fn implements_trait_with_env_from_iter<'tcx>(
|
|||||||
.map(|arg| arg.into().unwrap_or_else(|| infcx.next_ty_var(DUMMY_SP).into()))
|
.map(|arg| arg.into().unwrap_or_else(|| infcx.next_ty_var(DUMMY_SP).into()))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
// If an effect arg was not specified, we need to specify it.
|
|
||||||
let effect_arg = if tcx
|
|
||||||
.generics_of(trait_id)
|
|
||||||
.host_effect_index
|
|
||||||
.is_some_and(|x| args.get(x - 1).is_none())
|
|
||||||
{
|
|
||||||
Some(GenericArg::from(callee_id.map_or(tcx.consts.true_, |def_id| {
|
|
||||||
tcx.expected_host_effect_param_for_body(def_id)
|
|
||||||
})))
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
};
|
|
||||||
|
|
||||||
let trait_ref = TraitRef::new(
|
let trait_ref = TraitRef::new(
|
||||||
tcx,
|
tcx,
|
||||||
trait_id,
|
trait_id,
|
||||||
[GenericArg::from(ty)].into_iter().chain(args).chain(effect_arg),
|
[GenericArg::from(ty)].into_iter().chain(args),
|
||||||
);
|
);
|
||||||
|
|
||||||
debug_assert_matches!(
|
debug_assert_matches!(
|
||||||
|
Loading…
Reference in New Issue
Block a user