| //@ 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::<()>(); | |
| } |