From 782896772f9bee73c8dd1ce6a9b368673bb67876 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 23 Jul 2024 06:12:44 -0400 Subject: [PATCH] make interner take database, not runtime --- .../src/setup_interned_struct.rs | 3 +-- .../salsa-macro-rules/src/setup_tracked_fn.rs | 4 ++-- src/interned.rs | 17 ++++++++++++----- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/components/salsa-macro-rules/src/setup_interned_struct.rs b/components/salsa-macro-rules/src/setup_interned_struct.rs index 505b60b..049229f 100644 --- a/components/salsa-macro-rules/src/setup_interned_struct.rs +++ b/components/salsa-macro-rules/src/setup_interned_struct.rs @@ -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,)*)) } $( diff --git a/components/salsa-macro-rules/src/setup_tracked_fn.rs b/components/salsa-macro-rules/src/setup_tracked_fn.rs index 3a2de4c..e3f60aa 100644 --- a/components/salsa-macro-rules/src/setup_tracked_fn.rs +++ b/components/salsa-macro-rules/src/setup_tracked_fn.rs @@ -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 { diff --git a/src/interned.rs b/src/interned.rs index 1715b84..18be1eb 100644 --- a/src/interned.rs +++ b/src/interned.rs @@ -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,