error: `data` option not allowed here --> tests/compile-fail/tracked_fn_incompatibles.rs:8:18 | 8 | #[salsa::tracked(data = Data)] | ^^^^ error: `db` option not allowed here --> tests/compile-fail/tracked_fn_incompatibles.rs:13:18 | 13 | #[salsa::tracked(db = Db)] | ^^ error: `constructor` option not allowed here --> tests/compile-fail/tracked_fn_incompatibles.rs:18:18 | 18 | #[salsa::tracked(constructor = TrackedFn3)] | ^^^^^^^^^^^ error: #[salsa::tracked] must also be applied to the impl block for tracked methods --> tests/compile-fail/tracked_fn_incompatibles.rs:27:55 | 27 | fn tracked_fn_with_receiver_not_applied_to_impl_block(&self, db: &dyn Db) -> u32 {} | ^^^^^ error: only functions with a single salsa struct as their input can be specified --> tests/compile-fail/tracked_fn_incompatibles.rs:29:18 | 29 | #[salsa::tracked(specify)] | ^^^^^^^ error: must have a `'db` lifetime --> tests/compile-fail/tracked_fn_incompatibles.rs:44:9 | 44 | db: &dyn Db, | ^ error: must have a `'db_lifetime` lifetime --> tests/compile-fail/tracked_fn_incompatibles.rs:52:9 | 52 | db: &dyn Db, | ^ error: only a single lifetime parameter is accepted --> tests/compile-fail/tracked_fn_incompatibles.rs:67:39 | 67 | fn tracked_fn_with_multiple_lts<'db1, 'db2>(db: &'db1 dyn Db, interned: MyInterned<'db2>) -> u32 { | ^^^^ error[E0106]: missing lifetime specifier --> tests/compile-fail/tracked_fn_incompatibles.rs:61:15 | 61 | interned: MyInterned, | ^^^^^^^^^^ expected named lifetime parameter | help: consider using the `'db` lifetime | 61 | interned: MyInterned<'db>, | +++++ error[E0308]: mismatched types --> tests/compile-fail/tracked_fn_incompatibles.rs:24:46 | 23 | #[salsa::tracked] | ----------------- implicitly returns `()` as its body has no tail or `return` expression 24 | fn tracked_fn_with_one_input(db: &dyn Db) -> u32 {} | ^^^ expected `u32`, found `()`