Add test for issue 30472

This commit is contained in:
clubby789 2024-10-07 11:36:47 +00:00
parent b27c22d6b0
commit fa4f18be55

View File

@ -0,0 +1,32 @@
//@ check-pass
//! Tests that associated type projections normalize properly in the presence of HRTBs.
//! Original issue: <https://github.com/rust-lang/rust/issues/30472>
pub trait MyFrom<T> {}
impl<T> MyFrom<T> for T {}
pub trait MyInto<T> {}
impl<T, U> MyInto<U> for T where U: MyFrom<T> {}
pub trait A<'self_> {
type T;
}
pub trait B: for<'self_> A<'self_> {
// Originally caused the `type U = usize` example below to fail with a type mismatch error
type U: for<'self_> MyFrom<<Self as A<'self_>>::T>;
}
pub struct M;
impl<'self_> A<'self_> for M {
type T = usize;
}
impl B for M {
type U = usize;
}
fn main() {}