rust-lang / rust-lang/rfcs

Implicit-argument closures.

Open
#1,322 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

T-lang
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.