1 // Regression test for #77653
2 // When monomorphizing `f` we need to prove `dyn Derived<()>: Base<()>`. This
3 // requires us to normalize the `Base<<() as Proj>::S>` to `Base<()>` when
4 // comparing the supertrait `Derived<()>` to the expected trait.
24 trait Derived<B: Proj>: Base<B::S> + Base<()> {
28 fn f<P: Proj>(obj: &dyn Derived<P>) {
30 Base::<P::S>::is_base(obj);
31 Base::<()>::is_base(obj);
35 let x: fn(_) = f::<()>;
36 let x: fn(_) = f::<i32>;