Implement Hash for new types
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
This commit is contained in:
parent
73a6df6079
commit
9a9aa5b46a
@ -74,6 +74,7 @@ fn hash_stable<W: StableHasherResult>(&self,
|
||||
match self {
|
||||
ty::subst::UnpackedKind::Lifetime(lt) => lt.hash_stable(hcx, hasher),
|
||||
ty::subst::UnpackedKind::Type(ty) => ty.hash_stable(hcx, hasher),
|
||||
ty::subst::UnpackedKind::Const(ct) => ct.hash_stable(hcx, hasher),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -134,6 +135,15 @@ fn hash_stable<W: StableHasherResult>(&self,
|
||||
}
|
||||
}
|
||||
|
||||
impl<'gcx, 'tcx> HashStable<StableHashingContext<'gcx>> for ty::ConstVid<'tcx> {
|
||||
#[inline]
|
||||
fn hash_stable<W: StableHasherResult>(&self,
|
||||
hcx: &mut StableHashingContext<'gcx>,
|
||||
hasher: &mut StableHasher<W>) {
|
||||
self.index.hash_stable(hcx, hasher);
|
||||
}
|
||||
}
|
||||
|
||||
impl<'gcx> HashStable<StableHashingContext<'gcx>> for ty::BoundVar {
|
||||
#[inline]
|
||||
fn hash_stable<W: StableHasherResult>(&self,
|
||||
@ -297,6 +307,14 @@ fn hash_stable<W: StableHasherResult>(&self,
|
||||
}
|
||||
}
|
||||
|
||||
impl_stable_hash_for!(
|
||||
impl<'tcx> for enum ty::InferConst<'tcx> [ ty::InferConst ] {
|
||||
Var(vid),
|
||||
Fresh(i),
|
||||
Canonical(debruijn, var),
|
||||
}
|
||||
);
|
||||
|
||||
impl_stable_hash_for!(enum ty::VariantDiscr {
|
||||
Explicit(def_id),
|
||||
Relative(distance)
|
||||
@ -310,11 +328,14 @@ fn hash_stable<W: StableHasherResult>(&self,
|
||||
|
||||
impl_stable_hash_for!(
|
||||
impl<'tcx> for enum mir::interpret::ConstValue<'tcx> [ mir::interpret::ConstValue ] {
|
||||
Param(param),
|
||||
Infer(infer),
|
||||
Scalar(val),
|
||||
Slice(a, b),
|
||||
ByRef(ptr, alloc),
|
||||
}
|
||||
);
|
||||
|
||||
impl_stable_hash_for!(struct crate::mir::interpret::RawConst<'tcx> {
|
||||
alloc_id,
|
||||
ty,
|
||||
@ -518,6 +539,7 @@ impl<'tcx, O> for enum mir::interpret::EvalErrorKind<'tcx, O>
|
||||
impl_stable_hash_for!(enum ty::GenericParamDefKind {
|
||||
Lifetime,
|
||||
Type { has_default, object_lifetime_default, synthetic },
|
||||
Const,
|
||||
});
|
||||
|
||||
impl_stable_hash_for!(
|
||||
@ -736,6 +758,11 @@ fn hash_stable<W: StableHasherResult>(&self,
|
||||
}
|
||||
}
|
||||
|
||||
impl_stable_hash_for!(struct ty::ParamConst {
|
||||
index,
|
||||
name
|
||||
});
|
||||
|
||||
impl_stable_hash_for!(struct ty::ParamTy {
|
||||
idx,
|
||||
name
|
||||
|
Loading…
Reference in New Issue
Block a user