| //@ known-bug: #139120 | |
| pub trait Foo { | |
| type Bar<'a>; | |
| } | |
| pub struct FooImpl {} | |
| impl Foo for FooImpl { | |
| type Bar<'a> = (); | |
| } | |
| pub trait FooFn { | |
| fn bar(&self); | |
| } | |
| impl<T: Foo> FooFn for fn(T, T::Bar<'_>) { | |
| fn bar(&self) {} | |
| } | |
| fn foo<T: Foo>(f: fn(T, T::Bar<'_>)) { | |
| let _: &dyn FooFn = &f; | |
| } | |
| fn main() { | |
| foo(|_: FooImpl, _| {}); | |
| } |