Auto merge of #94799 - lcnr:list-ty-perf, r=petrochenkov
update `hash_stable` for `List<Ty<'tcx>>` cc https://github.com/rust-lang/rust/pull/93505#issuecomment-1047538798 this is the hottest part changed since the pre-merge perf run
This commit is contained in:
commit
c51871c469
@ -86,18 +86,16 @@ impl<'a, 'tcx> HashStable<StableHashingContext<'a>> for ty::subst::GenericArgKin
|
||||
//
|
||||
// In order to make it very unlikely for the sequence of bytes being hashed for
|
||||
// a `GenericArgKind::Type` to be the same as the sequence of bytes being
|
||||
// hashed for one of the other variants, we hash a `0xFF` byte before hashing
|
||||
// their discriminant (since the discriminant of `TyKind` is unlikely to ever start
|
||||
// with 0xFF).
|
||||
// hashed for one of the other variants, we hash some very high number instead
|
||||
// of their actual discriminant since `TyKind` should never start with anything
|
||||
// that high.
|
||||
ty::subst::GenericArgKind::Type(ty) => ty.hash_stable(hcx, hasher),
|
||||
ty::subst::GenericArgKind::Const(ct) => {
|
||||
0xFFu8.hash_stable(hcx, hasher);
|
||||
mem::discriminant(self).hash_stable(hcx, hasher);
|
||||
0xF3u8.hash_stable(hcx, hasher);
|
||||
ct.hash_stable(hcx, hasher);
|
||||
}
|
||||
ty::subst::GenericArgKind::Lifetime(lt) => {
|
||||
0xFFu8.hash_stable(hcx, hasher);
|
||||
mem::discriminant(self).hash_stable(hcx, hasher);
|
||||
0xF5u8.hash_stable(hcx, hasher);
|
||||
lt.hash_stable(hcx, hasher);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user