mirror of
https://github.com/salsa-rs/salsa.git
synced 2025-02-02 09:46:06 +00:00
make interner take database, not runtime
This commit is contained in:
parent
53ccfa3fc3
commit
782896772f
3 changed files with 15 additions and 9 deletions
|
@ -134,9 +134,8 @@ macro_rules! setup_interned_struct {
|
|||
// FIXME(rust-lang/rust#65991): The `db` argument *should* have the type `dyn Database`
|
||||
$Db: ?Sized + salsa::Database,
|
||||
{
|
||||
let runtime = db.runtime();
|
||||
let current_revision = $zalsa::current_revision(db);
|
||||
$Configuration::ingredient(db).intern(runtime, ($($field_id,)*))
|
||||
$Configuration::ingredient(db).intern(db.as_salsa_database(), ($($field_id,)*))
|
||||
}
|
||||
|
||||
$(
|
||||
|
|
|
@ -233,7 +233,7 @@ macro_rules! setup_tracked_fn {
|
|||
use salsa::plumbing as $zalsa;
|
||||
let key = $zalsa::macro_if! {
|
||||
if $needs_interner {
|
||||
$Configuration::intern_ingredient($db).intern_id($db.runtime(), ($($input_id),*))
|
||||
$Configuration::intern_ingredient($db).intern_id($db.as_salsa_database(), ($($input_id),*))
|
||||
} else {
|
||||
$zalsa::AsId::as_id(&($($input_id),*))
|
||||
}
|
||||
|
@ -269,7 +269,7 @@ macro_rules! setup_tracked_fn {
|
|||
let result = $zalsa::macro_if! {
|
||||
if $needs_interner {
|
||||
{
|
||||
let key = $Configuration::intern_ingredient($db).intern_id($db.runtime(), ($($input_id),*));
|
||||
let key = $Configuration::intern_ingredient($db).intern_id($db.as_salsa_database(), ($($input_id),*));
|
||||
$Configuration::fn_ingredient($db).fetch($db, key)
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -11,7 +11,6 @@ use crate::ingredient::fmt_index;
|
|||
use crate::key::DependencyIndex;
|
||||
use crate::local_state::QueryOrigin;
|
||||
use crate::plumbing::Jar;
|
||||
use crate::runtime::Runtime;
|
||||
use crate::storage::IngredientIndex;
|
||||
use crate::{Database, DatabaseKeyIndex, Id};
|
||||
|
||||
|
@ -123,13 +122,21 @@ where
|
|||
unsafe { std::mem::transmute(data) }
|
||||
}
|
||||
|
||||
pub fn intern_id<'db>(&'db self, runtime: &'db Runtime, data: C::Data<'db>) -> crate::Id {
|
||||
C::deref_struct(self.intern(runtime, data)).as_id()
|
||||
pub fn intern_id<'db>(
|
||||
&'db self,
|
||||
db: &'db dyn crate::Database,
|
||||
data: C::Data<'db>,
|
||||
) -> crate::Id {
|
||||
C::deref_struct(self.intern(db, data)).as_id()
|
||||
}
|
||||
|
||||
/// Intern data to a unique reference.
|
||||
pub fn intern<'db>(&'db self, runtime: &'db Runtime, data: C::Data<'db>) -> C::Struct<'db> {
|
||||
runtime.report_tracked_read(
|
||||
pub fn intern<'db>(
|
||||
&'db self,
|
||||
db: &'db dyn crate::Database,
|
||||
data: C::Data<'db>,
|
||||
) -> C::Struct<'db> {
|
||||
db.runtime().report_tracked_read(
|
||||
DependencyIndex::for_table(self.ingredient_index),
|
||||
Durability::MAX,
|
||||
self.reset_at,
|
||||
|
|
Loading…
Reference in a new issue