@@ -368,14 +368,14 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> {
368
368
Binder , OutlivesPredicate , PredicateKind , ProjectionPredicate , ProjectionTy ,
369
369
SubtypePredicate , ToPredicate , TraitPredicate , WithOptConstParam ,
370
370
} ;
371
+ use rustc_middle:: ty:: PredicateAtom ;
371
372
372
- Some ( match predicate. kind ( ) {
373
- PredicateKind :: Trait ( trait_predicate, constness) => PredicateKind :: Trait (
374
- Binder :: bind (
373
+ Some ( match predicate. skip_binders ( ) {
374
+ PredicateAtom :: Trait ( trait_predicate, constness) => PredicateAtom :: Trait (
375
375
if let Some ( ( target_def_id, target_substs) ) = self . translate_orig_substs (
376
376
index_map,
377
- trait_predicate. skip_binder ( ) . trait_ref . def_id ,
378
- trait_predicate. skip_binder ( ) . trait_ref . substs ,
377
+ trait_predicate. trait_ref . def_id ,
378
+ trait_predicate. trait_ref . substs ,
379
379
) {
380
380
TraitPredicate {
381
381
trait_ref : TraitRef {
@@ -386,84 +386,86 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> {
386
386
} else {
387
387
return None ;
388
388
} ,
389
- ) ,
390
- * constness,
389
+ constness,
391
390
)
392
391
. to_predicate ( self . tcx ) ,
393
- PredicateKind :: RegionOutlives ( region_outlives_predicate) => {
394
- PredicateKind :: RegionOutlives ( region_outlives_predicate. map_bound ( |r_pred| {
392
+ PredicateAtom :: RegionOutlives ( region_outlives_predicate) => {
393
+ PredicateAtom :: RegionOutlives ( {
394
+ let r_pred = region_outlives_predicate;
395
395
let l = self . translate_region ( r_pred. 0 ) ;
396
396
let r = self . translate_region ( r_pred. 1 ) ;
397
397
OutlivesPredicate ( l, r)
398
- } ) )
398
+ } )
399
399
. to_predicate ( self . tcx )
400
400
}
401
- PredicateKind :: TypeOutlives ( type_outlives_predicate) => {
402
- PredicateKind :: TypeOutlives ( type_outlives_predicate. map_bound ( |r_pred| {
401
+ PredicateAtom :: TypeOutlives ( type_outlives_predicate) => {
402
+ PredicateAtom :: TypeOutlives ( {
403
+ let r_pred = type_outlives_predicate;
403
404
let l = self . translate ( index_map, & r_pred. 0 ) ;
404
405
let r = self . translate_region ( r_pred. 1 ) ;
405
406
OutlivesPredicate ( l, r)
406
- } ) )
407
+ } )
407
408
. to_predicate ( self . tcx )
408
409
}
409
- PredicateKind :: Projection ( projection_predicate) => {
410
- PredicateKind :: Projection ( Binder :: bind (
410
+ PredicateAtom :: Projection ( projection_predicate) => {
411
+ PredicateAtom :: Projection (
411
412
if let Some ( ( target_def_id, target_substs) ) = self . translate_orig_substs (
412
413
index_map,
413
- projection_predicate. skip_binder ( ) . projection_ty . item_def_id ,
414
- projection_predicate. skip_binder ( ) . projection_ty . substs ,
414
+ projection_predicate. projection_ty . item_def_id ,
415
+ projection_predicate. projection_ty . substs ,
415
416
) {
416
417
ProjectionPredicate {
417
418
projection_ty : ProjectionTy {
418
419
substs : target_substs,
419
420
item_def_id : target_def_id,
420
421
} ,
421
- ty : self . translate ( index_map, & projection_predicate. skip_binder ( ) . ty ) ,
422
+ ty : self . translate ( index_map, & projection_predicate. ty ) ,
422
423
}
423
424
} else {
424
425
return None ;
425
426
} ,
426
- ) )
427
+ )
427
428
. to_predicate ( self . tcx )
428
429
}
429
- PredicateKind :: WellFormed ( ty) => {
430
- PredicateKind :: WellFormed ( self . translate ( index_map, & ty) ) . to_predicate ( self . tcx )
430
+ PredicateAtom :: WellFormed ( ty) => {
431
+ PredicateAtom :: WellFormed ( self . translate ( index_map, & ty) ) . to_predicate ( self . tcx )
431
432
}
432
- PredicateKind :: ObjectSafe ( did) => {
433
- PredicateKind :: ObjectSafe ( self . translate_orig ( * did) ) . to_predicate ( self . tcx )
433
+ PredicateAtom :: ObjectSafe ( did) => {
434
+ PredicateAtom :: ObjectSafe ( self . translate_orig ( did) ) . to_predicate ( self . tcx )
434
435
}
435
- PredicateKind :: ClosureKind ( did, substs, kind) => PredicateKind :: ClosureKind (
436
- self . translate_orig ( * did) ,
436
+ PredicateAtom :: ClosureKind ( did, substs, kind) => PredicateAtom :: ClosureKind (
437
+ self . translate_orig ( did) ,
437
438
self . translate ( index_map, & substs) ,
438
- * kind,
439
+ kind,
439
440
)
440
441
. to_predicate ( self . tcx ) ,
441
- PredicateKind :: Subtype ( subtype_predicate) => {
442
- PredicateKind :: Subtype ( subtype_predicate. map_bound ( |s_pred| {
442
+ PredicateAtom :: Subtype ( subtype_predicate) => {
443
+ PredicateAtom :: Subtype ( {
444
+ let s_pred = subtype_predicate;
443
445
let l = self . translate ( index_map, & s_pred. a ) ;
444
446
let r = self . translate ( index_map, & s_pred. b ) ;
445
447
SubtypePredicate {
446
448
a_is_expected : s_pred. a_is_expected ,
447
449
a : l,
448
450
b : r,
449
451
}
450
- } ) )
452
+ } )
451
453
. to_predicate ( self . tcx )
452
454
}
453
- PredicateKind :: ConstEvaluatable ( param, orig_substs) => {
455
+ PredicateAtom :: ConstEvaluatable ( param, orig_substs) => {
454
456
if let Some ( ( target_def_id, target_substs) ) =
455
457
self . translate_orig_substs ( index_map, param. did , orig_substs)
456
458
{
457
459
// TODO: We could probably use translated version for
458
460
// `WithOptConstParam::const_param_did`
459
461
let const_param = WithOptConstParam :: unknown ( target_def_id) ;
460
- PredicateKind :: ConstEvaluatable ( const_param, target_substs)
462
+ PredicateAtom :: ConstEvaluatable ( const_param, target_substs)
461
463
. to_predicate ( self . tcx )
462
464
} else {
463
465
return None ;
464
466
}
465
467
}
466
- PredicateKind :: ConstEquate ( c1, c2) => PredicateKind :: ConstEquate (
468
+ PredicateAtom :: ConstEquate ( c1, c2) => PredicateAtom :: ConstEquate (
467
469
self . translate ( index_map, & c1) ,
468
470
self . translate ( index_map, & c2) ,
469
471
)
0 commit comments