Unify key types in get_lookup.
This commit is contained in:
parent
301ad11e9b
commit
d305b2ccc6
@ -8,12 +8,12 @@ use std::default::Default;
|
|||||||
use std::hash::Hash;
|
use std::hash::Hash;
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
|
||||||
pub trait CacheSelector<CTX: QueryContext, K, V> {
|
pub trait CacheSelector<CTX: QueryContext, K: Hash, V> {
|
||||||
type Cache: QueryCache<CTX, Key = K, Value = V>;
|
type Cache: QueryCache<CTX, Key = K, Value = V>;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait QueryCache<CTX: QueryContext>: Default {
|
pub trait QueryCache<CTX: QueryContext>: Default {
|
||||||
type Key;
|
type Key: Hash;
|
||||||
type Value;
|
type Value;
|
||||||
type Sharded: Default;
|
type Sharded: Default;
|
||||||
|
|
||||||
|
@ -57,9 +57,9 @@ pub struct QueryState<CTX: QueryContext, C: QueryCache<CTX>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<CTX: QueryContext, C: QueryCache<CTX>> QueryState<CTX, C> {
|
impl<CTX: QueryContext, C: QueryCache<CTX>> QueryState<CTX, C> {
|
||||||
pub(super) fn get_lookup<'tcx, K2: Hash>(
|
pub(super) fn get_lookup<'tcx>(
|
||||||
&'tcx self,
|
&'tcx self,
|
||||||
key: &K2,
|
key: &C::Key,
|
||||||
) -> QueryLookup<'tcx, CTX, C::Key, C::Sharded> {
|
) -> QueryLookup<'tcx, CTX, C::Key, C::Sharded> {
|
||||||
// We compute the key's hash once and then use it for both the
|
// We compute the key's hash once and then use it for both the
|
||||||
// shard lookup and the hashmap lookup. This relies on the fact
|
// shard lookup and the hashmap lookup. This relies on the fact
|
||||||
|
Loading…
x
Reference in New Issue
Block a user