From fa4f18be5553bd23856abf717ad86acf0412a2ef Mon Sep 17 00:00:00 2001 From: clubby789 Date: Mon, 7 Oct 2024 11:36:47 +0000 Subject: [PATCH] Add test for issue 30472 --- .../assoc-type-hrtb-normalization-30472.rs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/ui/traits/assoc-type-hrtb-normalization-30472.rs diff --git a/tests/ui/traits/assoc-type-hrtb-normalization-30472.rs b/tests/ui/traits/assoc-type-hrtb-normalization-30472.rs new file mode 100644 index 00000000000..4ce3b9b3b77 --- /dev/null +++ b/tests/ui/traits/assoc-type-hrtb-normalization-30472.rs @@ -0,0 +1,32 @@ +//@ check-pass +//! Tests that associated type projections normalize properly in the presence of HRTBs. +//! Original issue: + + +pub trait MyFrom {} +impl MyFrom for T {} + +pub trait MyInto {} +impl MyInto for T where U: MyFrom {} + + +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<>::T>; +} + + +pub struct M; +impl<'self_> A<'self_> for M { + type T = usize; +} + +impl B for M { + type U = usize; +} + + +fn main() {}