From 815bf6003b4e183d44bc0124b646587617a28df1 Mon Sep 17 00:00:00 2001 From: XFFXFF <1247714429@qq.com> Date: Mon, 8 Aug 2022 07:20:39 +0800 Subject: [PATCH] add a test --- salsa-2022-tests/tests/cycles.rs | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 salsa-2022-tests/tests/cycles.rs diff --git a/salsa-2022-tests/tests/cycles.rs b/salsa-2022-tests/tests/cycles.rs new file mode 100644 index 00000000..0e5972a6 --- /dev/null +++ b/salsa-2022-tests/tests/cycles.rs @@ -0,0 +1,43 @@ + +#![allow(warnings)] + +#[salsa::jar(db = Db)] +struct Jar(MyInput, memoized_a, memoized_b); + +trait Db: salsa::DbWithJar {} + +#[salsa::db(Jar)] +#[derive(Default)] +struct Database { + storage: salsa::Storage, +} + +impl salsa::Database for Database { + fn salsa_runtime(&self) -> &salsa::Runtime { + self.storage.runtime() + } +} + +impl Db for Database {} + +#[salsa::tracked(jar = Jar)] +struct MyInput { + +} + +#[salsa::tracked(jar = Jar)] +fn memoized_a(db: &dyn Db, input: MyInput) -> () { + memoized_b(db, input) +} + +#[salsa::tracked(jar = Jar)] +fn memoized_b(db: &dyn Db, input: MyInput) -> () { + memoized_a(db, input) +} + +#[test] +fn execute() { + let mut db = Database::default(); + let input = MyInput::new(&mut db); + memoized_a(&db, input); +} \ No newline at end of file