UPDATE:
This is a meta-bug now for tracking the work on completing closures. Now that #6801 has landed, the remaining pieces of work are:
ORIGINAL FOLLOWS:
We need to revamp function types in light of regions. I think fn() (the "any" function) will go away, and fn@() and fn~() will be coercable to fn&(), just as with poiners/vectors/slices/etc. Also, fn&() becomes fn&r() (that is, r is a region), though the user won't typically need to write it. We can probably leave the representation as is, though we could also tweak fn&() to not have a ref count since there will be an explicit borrowing that occurs.
UPDATE:
This is a meta-bug now for tracking the work on completing closures. Now that #6801 has landed, the remaining pieces of work are:
'a ||as syntaxORIGINAL FOLLOWS:
We need to revamp function types in light of regions. I think
fn()(the "any" function) will go away, andfn@()andfn~()will be coercable tofn&(), just as with poiners/vectors/slices/etc. Also,fn&()becomesfn&r()(that is, r is a region), though the user won't typically need to write it. We can probably leave the representation as is, though we could also tweakfn&()to not have a ref count since there will be an explicit borrowing that occurs.