1 // check-pass
2 
3 // If we allow the parent generics here without using lazy normalization
4 // this results in a cycle error.
5 struct Foo<T, U>(T, U);
6 
7 impl<T> From<[u8; 1 + 1]> for Foo<T, [u8; 1 + 1]> {
from(value: [u8; 1 + 1]) -> Foo<T, [u8; 1 + 1]>8     fn from(value: [u8; 1 + 1]) -> Foo<T, [u8; 1 + 1]> {
9         todo!();
10     }
11 }
12 
break_me<T>() where [u8; 1 + 1]: From<[u8; 1 + 1]>13 fn break_me<T>()
14 where
15     [u8; 1 + 1]: From<[u8; 1 + 1]>
16 {}
17 
main()18 fn main() {}
19