mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 11:07:42 +00:00
anonymize_predicate
This commit is contained in:
parent
1b33f39126
commit
cd30894c2f
@ -10,41 +10,34 @@ pub fn anonymize_predicate<'tcx>(
|
|||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
pred: ty::Predicate<'tcx>,
|
pred: ty::Predicate<'tcx>,
|
||||||
) -> ty::Predicate<'tcx> {
|
) -> ty::Predicate<'tcx> {
|
||||||
let kind = pred.kind();
|
let kind = pred.kint(tcx);
|
||||||
let new = match kind {
|
let new = match kind {
|
||||||
&ty::PredicateKind::Trait(ref data, constness) => {
|
ty::PredicateKint::ForAll(binder) => {
|
||||||
ty::PredicateKind::Trait(tcx.anonymize_late_bound_regions(data), constness)
|
ty::PredicateKint::ForAll(tcx.anonymize_late_bound_regions(binder))
|
||||||
|
}
|
||||||
|
&ty::PredicateKint::Trait(data, constness) => ty::PredicateKint::Trait(data, constness),
|
||||||
|
|
||||||
|
&ty::PredicateKint::RegionOutlives(data) => ty::PredicateKint::RegionOutlives(data),
|
||||||
|
|
||||||
|
&ty::PredicateKint::TypeOutlives(data) => ty::PredicateKint::TypeOutlives(data),
|
||||||
|
|
||||||
|
&ty::PredicateKint::Projection(data) => ty::PredicateKint::Projection(data),
|
||||||
|
|
||||||
|
&ty::PredicateKint::WellFormed(data) => ty::PredicateKint::WellFormed(data),
|
||||||
|
|
||||||
|
&ty::PredicateKint::ObjectSafe(data) => ty::PredicateKint::ObjectSafe(data),
|
||||||
|
|
||||||
|
&ty::PredicateKint::ClosureKind(closure_def_id, closure_substs, kind) => {
|
||||||
|
ty::PredicateKint::ClosureKind(closure_def_id, closure_substs, kind)
|
||||||
}
|
}
|
||||||
|
|
||||||
ty::PredicateKind::RegionOutlives(data) => {
|
&ty::PredicateKint::Subtype(data) => ty::PredicateKint::Subtype(data),
|
||||||
ty::PredicateKind::RegionOutlives(tcx.anonymize_late_bound_regions(data))
|
|
||||||
|
&ty::PredicateKint::ConstEvaluatable(def_id, substs) => {
|
||||||
|
ty::PredicateKint::ConstEvaluatable(def_id, substs)
|
||||||
}
|
}
|
||||||
|
|
||||||
ty::PredicateKind::TypeOutlives(data) => {
|
&ty::PredicateKint::ConstEquate(c1, c2) => ty::PredicateKint::ConstEquate(c1, c2),
|
||||||
ty::PredicateKind::TypeOutlives(tcx.anonymize_late_bound_regions(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
ty::PredicateKind::Projection(data) => {
|
|
||||||
ty::PredicateKind::Projection(tcx.anonymize_late_bound_regions(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
&ty::PredicateKind::WellFormed(data) => ty::PredicateKind::WellFormed(data),
|
|
||||||
|
|
||||||
&ty::PredicateKind::ObjectSafe(data) => ty::PredicateKind::ObjectSafe(data),
|
|
||||||
|
|
||||||
&ty::PredicateKind::ClosureKind(closure_def_id, closure_substs, kind) => {
|
|
||||||
ty::PredicateKind::ClosureKind(closure_def_id, closure_substs, kind)
|
|
||||||
}
|
|
||||||
|
|
||||||
ty::PredicateKind::Subtype(data) => {
|
|
||||||
ty::PredicateKind::Subtype(tcx.anonymize_late_bound_regions(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
&ty::PredicateKind::ConstEvaluatable(def_id, substs) => {
|
|
||||||
ty::PredicateKind::ConstEvaluatable(def_id, substs)
|
|
||||||
}
|
|
||||||
|
|
||||||
ty::PredicateKind::ConstEquate(c1, c2) => ty::PredicateKind::ConstEquate(c1, c2),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if new != *kind { new.to_predicate(tcx) } else { pred }
|
if new != *kind { new.to_predicate(tcx) } else { pred }
|
||||||
|
Loading…
Reference in New Issue
Block a user