Add constness to ParamEnv
This now causes a lot of queries to be executed twice, as reveal_all forces NotConst
This commit is contained in:
parent
22eeff700e
commit
721ffd14c3
8 changed files with 126 additions and 45 deletions
|
@ -208,8 +208,11 @@ fn compare_predicate_entailment<'tcx>(
|
|||
// The key step here is to update the caller_bounds's predicates to be
|
||||
// the new hybrid bounds we computed.
|
||||
let normalize_cause = traits::ObligationCause::misc(impl_m_span, impl_m_hir_id);
|
||||
let param_env =
|
||||
ty::ParamEnv::new(tcx.intern_predicates(&hybrid_preds.predicates), Reveal::UserFacing);
|
||||
let param_env = ty::ParamEnv::new(
|
||||
tcx.intern_predicates(&hybrid_preds.predicates),
|
||||
Reveal::UserFacing,
|
||||
hir::Constness::NotConst,
|
||||
);
|
||||
let param_env =
|
||||
traits::normalize_param_env_or_error(tcx, impl_m.def_id, param_env, normalize_cause);
|
||||
|
||||
|
@ -1183,8 +1186,11 @@ fn compare_type_predicate_entailment<'tcx>(
|
|||
debug!("compare_type_predicate_entailment: bounds={:?}", hybrid_preds);
|
||||
|
||||
let normalize_cause = traits::ObligationCause::misc(impl_ty_span, impl_ty_hir_id);
|
||||
let param_env =
|
||||
ty::ParamEnv::new(tcx.intern_predicates(&hybrid_preds.predicates), Reveal::UserFacing);
|
||||
let param_env = ty::ParamEnv::new(
|
||||
tcx.intern_predicates(&hybrid_preds.predicates),
|
||||
Reveal::UserFacing,
|
||||
hir::Constness::NotConst,
|
||||
);
|
||||
let param_env = traits::normalize_param_env_or_error(
|
||||
tcx,
|
||||
impl_ty.def_id,
|
||||
|
@ -1369,7 +1375,11 @@ pub fn check_type_bounds<'tcx>(
|
|||
.to_predicate(tcx),
|
||||
),
|
||||
};
|
||||
ty::ParamEnv::new(tcx.intern_predicates(&predicates), Reveal::UserFacing)
|
||||
ty::ParamEnv::new(
|
||||
tcx.intern_predicates(&predicates),
|
||||
Reveal::UserFacing,
|
||||
param_env.constness(),
|
||||
)
|
||||
};
|
||||
debug!(?normalize_param_env);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue