// the new hybrid bounds we computed.
let normalize_cause = traits::ObligationCause::misc(impl_m_span, impl_m_node_id);
let param_env = ty::ParamEnv::new(tcx.intern_predicates(&hybrid_preds.predicates),
- Reveal::UserFacing);
+ Reveal::UserFacing,
+ ty::UniverseIndex::ROOT);
let param_env = traits::normalize_param_env_or_error(tcx,
impl_m.def_id,
param_env,
ty::TraitContainer(_) => tcx.mk_self_type()
};
let self_arg_ty = *tcx.fn_sig(method.def_id).input(0).skip_binder();
- let param_env = ty::ParamEnv::empty(Reveal::All);
+ let param_env = ty::ParamEnv::reveal_all();
tcx.infer_ctxt().enter(|infcx| {
+ let self_arg_ty = tcx.liberate_late_bound_regions(
+ method.def_id,
+ &ty::Binder(self_arg_ty)
+ );
let can_eq_self = |ty| infcx.can_eq(param_env, untransformed_self_ty, ty).is_ok();
match ExplicitSelf::determine(self_arg_ty, can_eq_self) {
ExplicitSelf::ByValue => "self".to_string(),
debug!("compare_const_impl(impl_trait_ref={:?})", impl_trait_ref);
tcx.infer_ctxt().enter(|infcx| {
- let param_env = ty::ParamEnv::empty(Reveal::UserFacing);
+ let param_env = ty::ParamEnv::empty();
let inh = Inherited::new(infcx, impl_c.def_id);
let infcx = &inh.infcx;