| // Regression test for #61311 | |
| // We would ICE after failing to normalize `Self::Proj` in the `impl` below. | |
| //@ check-pass | |
| pub struct Unit; | |
| trait Obj {} | |
| trait Bound {} | |
| impl Bound for Unit {} | |
| pub trait HasProj { | |
| type Proj; | |
| } | |
| impl<T> HasProj for T { | |
| type Proj = Unit; | |
| } | |
| trait HasProjFn { | |
| type Proj; | |
| fn the_fn(_: Self::Proj); | |
| } | |
| impl HasProjFn for Unit | |
| where | |
| Box<dyn Obj + 'static>: HasProj, | |
| <Box<dyn Obj + 'static> as HasProj>::Proj: Bound, | |
| { | |
| type Proj = Unit; | |
| fn the_fn(_: Self::Proj) {} | |
| } | |
| fn main() {} |