1 // Regression test for #80953. Hitting the recursion limit in projection
2 // is non-fatal. The above code, minimised from wundergraph shows a case
3 // where this is relied on.
7 struct AlternateTable {}
8 struct AlternateQuery {}
14 impl<T: Query> AsQuery for T {
17 impl AsQuery for AlternateTable {
18 type Query = AlternateQuery;
21 pub trait Table: AsQuery {
24 impl Table for AlternateTable {
28 pub trait FilterDsl<Predicate> {
31 pub type Filter<Source, Predicate> = <Source as FilterDsl<Predicate>>::Output;
32 impl<T, Predicate> FilterDsl<Predicate> for T
35 T::Query: FilterDsl<Predicate>,
37 type Output = Filter<T::Query, Predicate>;
39 impl<Predicate> FilterDsl<Predicate> for AlternateQuery {
40 type Output = &'static str;
43 pub trait HandleDelete {
46 impl<T> HandleDelete for T
49 T::Query: FilterDsl<T::PrimaryKey>,
50 Filter<T::Query, T::PrimaryKey>: ,
52 type Filter = Filter<T::Query, T::PrimaryKey>;
56 let x: <AlternateTable as HandleDelete>::Filter = "Hello, world";