Remove GeneratorWitness and rename GeneratorWitnessMIR.
This commit is contained in:
parent
855a75b6d6
commit
44ac8dcc71
60 changed files with 91 additions and 333 deletions
|
@ -459,7 +459,6 @@ impl<'cx, 'tcx> TypeFolder<TyCtxt<'tcx>> for Canonicalizer<'cx, 'tcx> {
|
|||
ty::Closure(..)
|
||||
| ty::Generator(..)
|
||||
| ty::GeneratorWitness(..)
|
||||
| ty::GeneratorWitnessMIR(..)
|
||||
| ty::Bool
|
||||
| ty::Char
|
||||
| ty::Int(..)
|
||||
|
|
|
@ -119,26 +119,6 @@ impl<'tcx> TypeRelation<'tcx> for Equate<'_, '_, 'tcx> {
|
|||
.obligations,
|
||||
);
|
||||
}
|
||||
// Optimization of GeneratorWitness relation since we know that all
|
||||
// free regions are replaced with bound regions during construction.
|
||||
// This greatly speeds up equating of GeneratorWitness.
|
||||
(&ty::GeneratorWitness(a_types), &ty::GeneratorWitness(b_types)) => {
|
||||
let a_types = infcx.tcx.anonymize_bound_vars(a_types);
|
||||
let b_types = infcx.tcx.anonymize_bound_vars(b_types);
|
||||
if a_types.bound_vars() == b_types.bound_vars() {
|
||||
let (a_types, b_types) = infcx.instantiate_binder_with_placeholders(
|
||||
a_types.map_bound(|a_types| (a_types, b_types.skip_binder())),
|
||||
);
|
||||
for (a, b) in std::iter::zip(a_types, b_types) {
|
||||
self.relate(a, b)?;
|
||||
}
|
||||
} else {
|
||||
return Err(ty::error::TypeError::Sorts(ty::relate::expected_found(
|
||||
self, a, b,
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
||||
_ => {
|
||||
self.fields.infcx.super_combine_tys(self, a, b)?;
|
||||
}
|
||||
|
|
|
@ -112,7 +112,7 @@ fn compute_components<'tcx>(
|
|||
}
|
||||
|
||||
// All regions are bound inside a witness
|
||||
ty::GeneratorWitness(..) | ty::GeneratorWitnessMIR(..) => (),
|
||||
ty::GeneratorWitness(..) => (),
|
||||
|
||||
// OutlivesTypeParameterEnv -- the actual checking that `X:'a`
|
||||
// is implied by the environment is done in regionck.
|
||||
|
|
|
@ -147,25 +147,6 @@ impl<'tcx> TypeRelation<'tcx> for Sub<'_, '_, 'tcx> {
|
|||
);
|
||||
Ok(a)
|
||||
}
|
||||
// Optimization of GeneratorWitness relation since we know that all
|
||||
// free regions are replaced with bound regions during construction.
|
||||
// This greatly speeds up subtyping of GeneratorWitness.
|
||||
(&ty::GeneratorWitness(a_types), &ty::GeneratorWitness(b_types)) => {
|
||||
let a_types = infcx.tcx.anonymize_bound_vars(a_types);
|
||||
let b_types = infcx.tcx.anonymize_bound_vars(b_types);
|
||||
if a_types.bound_vars() == b_types.bound_vars() {
|
||||
let (a_types, b_types) = infcx.instantiate_binder_with_placeholders(
|
||||
a_types.map_bound(|a_types| (a_types, b_types.skip_binder())),
|
||||
);
|
||||
for (a, b) in std::iter::zip(a_types, b_types) {
|
||||
self.relate(a, b)?;
|
||||
}
|
||||
Ok(a)
|
||||
} else {
|
||||
Err(ty::error::TypeError::Sorts(ty::relate::expected_found(self, a, b)))
|
||||
}
|
||||
}
|
||||
|
||||
_ => {
|
||||
self.fields.infcx.super_combine_tys(self, a, b)?;
|
||||
Ok(a)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue