mirror of https://github.com/rust-lang/rust
34 lines
488 B
Rust
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::<()>();
|
|
}
|