// check-pass pub struct LookupInternedStorage; impl QueryStorageOps for LookupInternedStorage where Q: Query, for<'d> Q: QueryDb<'d>, { fn fmt_index(&self, db: &>::DynDb) { <>::DynDb as HasQueryGroup>::group_storage(db); } } pub trait HasQueryGroup { fn group_storage(&self); } pub trait QueryStorageOps where Q: Query, { fn fmt_index(&self, db: &>::DynDb); } pub trait QueryDb<'d> { type DynDb: HasQueryGroup + 'd; type Group; } pub trait Query: for<'d> QueryDb<'d> {} fn main() {}