rust/tests/ui/trait-bounds/issue-95640.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
403 B
Rust
Raw Normal View History

2022-06-11 21:31:33 +00:00
//@ build-pass
//@ compile-flags:-Zmir-opt-level=3
struct D;
trait Tr {
type It;
fn foo(self) -> Option<Self::It>;
}
impl<'a> Tr for &'a D {
type It = ();
fn foo(self) -> Option<()> {
None
}
}
fn run<F>(f: F)
where
for<'a> &'a D: Tr,
F: Fn(<&D as Tr>::It),
{
let d = &D;
while let Some(i) = d.foo() {
f(i);
}
}
fn main() {
run(|_| {});
}