//@ check-pass | |
//@ compile-flags: -Znormalize-docs | |
// Regression test for <https://github.com/rust-lang/rust/issues/79459>. | |
pub trait Query {} | |
pub trait AsQuery { | |
type Query; | |
} | |
impl<T: Query> AsQuery for T { | |
type Query = T; | |
} | |
pub trait SelectDsl<Selection> { | |
type Output; | |
} | |
impl<T, Selection> SelectDsl<Selection> for T | |
where | |
T: AsQuery, | |
T::Query: SelectDsl<Selection>, | |
{ | |
type Output = <T::Query as SelectDsl<Selection>>::Output; | |
} | |
pub type Select<Source, Selection> = <Source as SelectDsl<Selection>>::Output; |