convert a test to use 'db in tracked functions

It works! Huzzah.
This commit is contained in:
Niko Matsakis 2024-05-18 06:56:04 -04:00
parent b4b49fbd1b
commit 56030df782

View file

@ -11,7 +11,7 @@ use test_log::test;
#[salsa::jar(db = Db)]
struct Jar(
MyInput,
MyTracked,
MyTracked<'_>,
final_result,
create_tracked_structs,
contribution_from_struct,
@ -36,12 +36,12 @@ fn final_result(db: &dyn Db, input: MyInput) -> u32 {
}
#[salsa::tracked]
struct MyTracked {
struct MyTracked<'db> {
field: u32,
}
#[salsa::tracked]
fn create_tracked_structs(db: &dyn Db, input: MyInput) -> Vec<MyTracked> {
fn create_tracked_structs<'db>(db: &'db dyn Db, input: MyInput) -> Vec<MyTracked<'db>> {
db.push_log(format!("intermediate_result({:?})", input));
(0..input.field(db))
.map(|i| MyTracked::new(db, i))
@ -49,13 +49,13 @@ fn create_tracked_structs(db: &dyn Db, input: MyInput) -> Vec<MyTracked> {
}
#[salsa::tracked]
fn contribution_from_struct(db: &dyn Db, tracked: MyTracked) -> u32 {
fn contribution_from_struct<'db>(db: &'db dyn Db, tracked: MyTracked<'db>) -> u32 {
let m = MyTracked::new(db, tracked.field(db));
copy_field(db, m) * 2
}
#[salsa::tracked]
fn copy_field(db: &dyn Db, tracked: MyTracked) -> u32 {
fn copy_field<'db>(db: &'db dyn Db, tracked: MyTracked<'db>) -> u32 {
tracked.field(db)
}