}
}
+impl_stable_hash_for!(struct ty::GenSig<'tcx> {
+ yield_ty,
+ return_ty
+});
+
impl_stable_hash_for!(struct ty::FnSig<'tcx> {
inputs_and_output,
variadic,
impl_stable_hash_for!(struct ty::ClosureSubsts<'tcx> { substs });
+impl_stable_hash_for!(struct ty::GeneratorInterior<'tcx> { witness });
+
impl_stable_hash_for!(struct ty::GenericPredicates<'tcx> {
parent,
predicates
def_id.hash_stable(hcx, hasher);
closure_substs.hash_stable(hcx, hasher);
}
+ TyGenerator(def_id, closure_substs, interior)
+ => {
+ def_id.hash_stable(hcx, hasher);
+ closure_substs.hash_stable(hcx, hasher);
+ interior.hash_stable(hcx, hasher);
+ }
TyTuple(inner_tys, from_diverging_type_var) => {
inner_tys.hash_stable(hcx, hasher);
from_diverging_type_var.hash_stable(hcx, hasher);
ref upvar_capture_map,
ref closure_tys,
ref closure_kinds,
+ ref generator_interiors,
+ ref generator_sigs,
ref liberated_fn_sigs,
ref fru_field_types,
ich::hash_stable_nodemap(hcx, hasher, closure_tys);
ich::hash_stable_nodemap(hcx, hasher, closure_kinds);
+ ich::hash_stable_nodemap(hcx, hasher, generator_interiors);
+ ich::hash_stable_nodemap(hcx, hasher, generator_sigs);
ich::hash_stable_nodemap(hcx, hasher, liberated_fn_sigs);
ich::hash_stable_nodemap(hcx, hasher, fru_field_types);
ich::hash_stable_nodemap(hcx, hasher, cast_kinds);
TupleSimplifiedType(size),
TraitSimplifiedType(def_id),
ClosureSimplifiedType(def_id),
+ GeneratorSimplifiedType(def_id),
AnonSimplifiedType(def_id),
FunctionSimplifiedType(params),
ParameterSimplifiedType