| #### Note: this error code is no longer emitted by the compiler. | |
| In-band lifetimes cannot be used in `fn`/`Fn` syntax. | |
| Erroneous code examples: | |
| ```ignore (feature got removed) | |
| #![feature(in_band_lifetimes)] | |
| fn foo(x: fn(&'a u32)) {} // error! | |
| fn bar(x: &Fn(&'a u32)) {} // error! | |
| fn baz(x: fn(&'a u32), y: &'a u32) {} // error! | |
| struct Foo<'a> { x: &'a u32 } | |
| impl Foo<'a> { | |
| fn bar(&self, x: fn(&'a u32)) {} // error! | |
| } | |
| ``` | |
| Lifetimes used in `fn` or `Fn` syntax must be explicitly | |
| declared using `<...>` binders. For example: | |
| ``` | |
| fn foo<'a>(x: fn(&'a u32)) {} // ok! | |
| fn bar<'a>(x: &Fn(&'a u32)) {} // ok! | |
| fn baz<'a>(x: fn(&'a u32), y: &'a u32) {} // ok! | |
| struct Foo<'a> { x: &'a u32 } | |
| impl<'a> Foo<'a> { | |
| fn bar(&self, x: fn(&'a u32)) {} // ok! | |
| } | |
| ``` |