2 // needs to be build-pass, because it is a regression test for a mir validation failure
3 // that only happens during codegen.
9 fn foo(self) -> Option<Self::It>;
12 impl<'a> Tr for &'a D {
14 fn foo(self) -> Option<()> { None }
18 where for<'a> &'a D: Tr,
19 F: Fn(<&D as Tr>::It),
22 while let Some(i) = d.foo() {