diff --git a/components/salsa-macro-rules/src/setup_tracked_fn.rs b/components/salsa-macro-rules/src/setup_tracked_fn.rs index 31c035ad..3d5862d4 100644 --- a/components/salsa-macro-rules/src/setup_tracked_fn.rs +++ b/components/salsa-macro-rules/src/setup_tracked_fn.rs @@ -190,7 +190,7 @@ macro_rules! setup_tracked_fn { fn id_to_input<$db_lt>(db: &$db_lt Self::DbView, key: salsa::Id) -> Self::Input<$db_lt> { $zalsa::macro_if! { if $needs_interner { - $Configuration::intern_ingredient(db).data(db, key).clone() + $Configuration::intern_ingredient(db).data(db.as_dyn_database(), key).clone() } else { $zalsa::FromId::from_id(key) } diff --git a/tests/tracked_fn_constant.rs b/tests/tracked_fn_constant.rs index b53f1b15..c6753ebf 100644 --- a/tests/tracked_fn_constant.rs +++ b/tests/tracked_fn_constant.rs @@ -2,13 +2,28 @@ //! compiles and executes successfully. #![allow(warnings)] +use crate::common::LogDatabase; + +mod common; + #[salsa::tracked] fn tracked_fn(db: &dyn salsa::Database) -> u32 { 44 } +#[salsa::tracked] +fn tracked_custom_db(db: &dyn LogDatabase) -> u32 { + 44 +} + #[test] fn execute() { let mut db = salsa::DatabaseImpl::new(); assert_eq!(tracked_fn(&db), 44); } + +#[test] +fn execute_custom() { + let mut db = common::LoggerDatabase::default(); + assert_eq!(tracked_custom_db(&db), 44); +}