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()
|
||||
.skip(1) // skip `Self` implicit 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 &ty::Param(ty::ParamTy { index, .. }) = ty.kind()
|
||||
// `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()))
|
||||
.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(
|
||||
tcx,
|
||||
trait_id,
|
||||
[GenericArg::from(ty)].into_iter().chain(args).chain(effect_arg),
|
||||
[GenericArg::from(ty)].into_iter().chain(args),
|
||||
);
|
||||
|
||||
debug_assert_matches!(
|
||||
|
Loading…
Reference in New Issue
Block a user