rust/tests/ui/higher-ranked/closure-bound-codegen-ice.rs

34 lines
488 B
Rust

//@ revisions: current next
//@[next] compile-flags: -Znext-solver
//@ build-pass
// Regression test for incomplete handling of Fn-trait goals,
// fixed in #122267.
trait Trait {
type Assoc<'a>: FnOnce(&'a ());
}
impl Trait for () {
type Assoc<'a> = fn(&'a ());
}
trait Indir {
fn break_me() {}
}
impl<F: Trait> Indir for F
where
for<'a> F::Assoc<'a>: FnOnce(&'a ()),
{
fn break_me() {}
}
fn foo<F: Trait>() {
F::break_me()
}
fn main() {
foo::<()>();
}