rust-lang / rust-lang/reference
Semantics of 'static lifetime are not explained
Open
Nobody has claimed this yet.
A-lifetimes
- Dominant language
- Rust
- Stars
- 1.6k
- Forks
- 607
- PR merge metrics
- PR metrics pending
Description
It's never explained what 'static actually means. Currently, the only definition of 'static given is two examples of what could be 'static. Namely:
- "Both constant and static declarations of reference types have implicit
'staticlifetimes unless an explicit lifetime is specified." https://github.com/rust-lang/reference/blob/b3ce60628c6f55ab8ff3dba9f3d20203df1c0dee/src/lifetime-elision.md?plain=1#L185
https://github.com/rust-lang/reference/blob/b3ce60628c6f55ab8ff3dba9f3d20203df1c0dee/src/items/constant-items.md?plain=1#L24 - "string literals always have
'staticlifetime." https://github.com/rust-lang/reference/blob/b3ce60628c6f55ab8ff3dba9f3d20203df1c0dee/src/subtyping.md?plain=1#L14
https://github.com/rust-lang/reference/blob/b3ce60628c6f55ab8ff3dba9f3d20203df1c0dee/src/expressions/literal-expr.md?plain=1#L176
The exact semantics of 'static should be made clear.
Contributor guide
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 the linked sections in lifetime-elision.md, constant-items.md, subtyping.md, and literal-expr.md to compare how 'static is currently described. Trace the existing examples and determine where the Reference should state its semantics explicitly. Done means the documentation clearly explains 'static, with the existing examples remaining consistent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100