Implicit-argument closures.
Nobody has claimed this yet.
- Dominant language
- Markdown
- Stars
- 6.6k
- Forks
- 1.7k
- Avg merge
- 16h 14m
- Merged PRs (30d)
- 1
Description
Often we want to use closures as local utility functions, but this is made very difficult by the fact that they borrow their captured variables for their entire lifetime.
In the common case where a closure is simply called one or more times from its declaring scope, it would be nice if the compiler could hoist it to the top level and add the captured variables as implicit arguments. This way the closure would re-borrow its environment at each call and the programmer would be free to use the captured variables elsewhere between invocations of the closure.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading issue #1322 and the surrounding RFC discussion to determine the intended semantics for closures called from their declaring scope. Done means defining and documenting a workable compiler design that allows captured variables to be re-borrowed at each invocation without changing the requested behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100