I want to write the RFC that allows inner functions to use type parameters that declared in outer functions. But I think that there was some motivation why this is disallowed. I have some thoughts about it: Probably it is made to ease handling of inner functions in cases like:
fn foo<T>() {
fn inner_foo() {
}
}
If type parameters are allowed in inner_foo
, then it is required to create function for each T
. I don’t know how hard it is to check whether T
is used in inner_foo
. If not then the compiler could create single inner_foo
.
I am waiting for a motivation from rustc team because they probably know reasons.