Rework point-at-arg
This commit is contained in:
parent
fb80d2bfe4
commit
c005e760f5
155 changed files with 1276 additions and 789 deletions
|
@ -117,11 +117,21 @@ pub enum TraitQueryMode {
|
|||
|
||||
/// Creates predicate obligations from the generic bounds.
|
||||
pub fn predicates_for_generics<'tcx>(
|
||||
cause: ObligationCause<'tcx>,
|
||||
cause: impl Fn(usize, Span) -> ObligationCause<'tcx>,
|
||||
param_env: ty::ParamEnv<'tcx>,
|
||||
generic_bounds: ty::InstantiatedPredicates<'tcx>,
|
||||
) -> impl Iterator<Item = PredicateObligation<'tcx>> {
|
||||
util::predicates_for_generics(cause, 0, param_env, generic_bounds)
|
||||
let generic_bounds = generic_bounds;
|
||||
debug!("predicates_for_generics(generic_bounds={:?})", generic_bounds);
|
||||
|
||||
std::iter::zip(generic_bounds.predicates, generic_bounds.spans).enumerate().map(
|
||||
move |(idx, (predicate, span))| Obligation {
|
||||
cause: cause(idx, span),
|
||||
recursion_depth: 0,
|
||||
param_env: param_env,
|
||||
predicate,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
/// Determines whether the type `ty` is known to meet `bound` and
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue