make interner take database, not runtime

This commit is contained in:
Niko Matsakis 2024-07-23 06:12:44 -04:00
parent 53ccfa3fc3
commit 782896772f
3 changed files with 15 additions and 9 deletions

View file

@ -134,9 +134,8 @@ macro_rules! setup_interned_struct {
// FIXME(rust-lang/rust#65991): The `db` argument *should* have the type `dyn Database` // FIXME(rust-lang/rust#65991): The `db` argument *should* have the type `dyn Database`
$Db: ?Sized + salsa::Database, $Db: ?Sized + salsa::Database,
{ {
let runtime = db.runtime();
let current_revision = $zalsa::current_revision(db); let current_revision = $zalsa::current_revision(db);
$Configuration::ingredient(db).intern(runtime, ($($field_id,)*)) $Configuration::ingredient(db).intern(db.as_salsa_database(), ($($field_id,)*))
} }
$( $(

View file

@ -233,7 +233,7 @@ macro_rules! setup_tracked_fn {
use salsa::plumbing as $zalsa; use salsa::plumbing as $zalsa;
let key = $zalsa::macro_if! { let key = $zalsa::macro_if! {
if $needs_interner { 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 { } else {
$zalsa::AsId::as_id(&($($input_id),*)) $zalsa::AsId::as_id(&($($input_id),*))
} }
@ -269,7 +269,7 @@ macro_rules! setup_tracked_fn {
let result = $zalsa::macro_if! { let result = $zalsa::macro_if! {
if $needs_interner { 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) $Configuration::fn_ingredient($db).fetch($db, key)
} }
} else { } else {

View file

@ -11,7 +11,6 @@ use crate::ingredient::fmt_index;
use crate::key::DependencyIndex; use crate::key::DependencyIndex;
use crate::local_state::QueryOrigin; use crate::local_state::QueryOrigin;
use crate::plumbing::Jar; use crate::plumbing::Jar;
use crate::runtime::Runtime;
use crate::storage::IngredientIndex; use crate::storage::IngredientIndex;
use crate::{Database, DatabaseKeyIndex, Id}; use crate::{Database, DatabaseKeyIndex, Id};
@ -123,13 +122,21 @@ where
unsafe { std::mem::transmute(data) } unsafe { std::mem::transmute(data) }
} }
pub fn intern_id<'db>(&'db self, runtime: &'db Runtime, data: C::Data<'db>) -> crate::Id { pub fn intern_id<'db>(
C::deref_struct(self.intern(runtime, data)).as_id() &'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. /// Intern data to a unique reference.
pub fn intern<'db>(&'db self, runtime: &'db Runtime, data: C::Data<'db>) -> C::Struct<'db> { pub fn intern<'db>(
runtime.report_tracked_read( &'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), DependencyIndex::for_table(self.ingredient_index),
Durability::MAX, Durability::MAX,
self.reset_at, self.reset_at,