-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pedantic 'static
lifetime corrections
#1732
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @marioidival (or someone else) soon. |
(acceptance is the final stage of grief)
@@ -69,7 +69,7 @@ demonstrate, the below example uses | |||
to dynamically create `'static` references. In that case it definitely doesn't | |||
live for the entire duration, but only for the leaking point onward. | |||
|
|||
```rust,editable,norun | |||
```rust,editable,compile_fail | |||
extern crate rand; | |||
use rand::Fill; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to note that the rust playground allows use of the top 100 most downloaded crates, allowing rand
to be used here
@@ -62,6 +62,31 @@ fn main() { | |||
} | |||
``` | |||
|
|||
Since `'static` references only need to be valid for the _remainder_ of | |||
a program's life, they can created while the program is executed. Just to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
they can created
they can be created
Good spot @kberov |
Update books ## rust-lang/edition-guide 1 commits in 2751bdcef125468ea2ee006c11992cd1405aebe5..34fca48ed284525b2f124bf93c51af36d6685492 2023-09-06 20:34:00 UTC to 2023-09-06 20:34:00 UTC - Update Rust 2018 "Path and module system changes" for Rust 1.72 (rust-lang/edition-guide#285) ## rust-lang/nomicon 2 commits in 388750b081c0893c275044d37203f97709e058ba..e3f3af69dce71cd37a785bccb7e58449197d940c 2023-09-11 15:57:05 UTC to 2023-09-11 15:55:35 UTC - specify which integer overflows we mean (rust-lang/nomicon#419) - remove 'fail to call destructors' from okay-list (rust-lang/nomicon#420) ## rust-lang/reference 4 commits in d43038932adeb16ada80e206d4c073d851298101..ee7c676fd6e287459cb407337652412c990686c0 2023-09-09 20:08:06 UTC to 2023-08-16 16:59:33 UTC - Specify bit validity and padding of some types (rust-lang/reference#1392) - implementations.md typo fix (rust-lang/reference#1399) - Update section on default layout for `repr(Rust)` (rust-lang/reference#1396) - conditional-compilation.md: Mention the "none" target_os value (rust-lang/reference#1395) ## rust-lang/rust-by-example 4 commits in 07e0df2f006e59d171c6bf3cafa9d61dbeb520d8..c954202c1e1720cba5628f99543cc01188c7d6fc 2023-08-22 18:49:29 UTC to 2023-08-22 18:46:56 UTC - Improve transparency of 5_i32 versus 5i32 (rust-lang/rust-by-example#1707) - Removed redundant comma (rust-lang/rust-by-example#1735) - Fixed link to Functions (rust-lang/rust-by-example#1734) - Pedantic `'static` lifetime corrections (rust-lang/rust-by-example#1732) ## rust-lang/rustc-dev-guide 25 commits in b123ab4754127d822ffb38349ce0fbf561f1b2fd..08bb147d51e815b96e8db7ba4cf870f201c11ff8 2023-09-11 10:36:36 UTC to 2023-08-18 21:13:31 UTC - make link more pleasant to eye too (rust-lang/rustc-dev-guide#1778) - The current playground link used in the page of MIR shows a optimized… (rust-lang/rustc-dev-guide#1789) - Add section about building an optimized version of `rustc` (rust-lang/rustc-dev-guide#1787) - Set max line length in `.editorconfig` to 100 (rust-lang/rustc-dev-guide#1788) - Update minor how-to-build-and-run.md spelling mistake (rust-lang/rustc-dev-guide#1785) - add sections in 'using git' (rust-lang#1675) (rust-lang/rustc-dev-guide#1784) - link std-dev-guide from landing page (rust-lang#1699) (rust-lang/rustc-dev-guide#1783) - Reword sentence about using `./x` over `./x.py` (rust-lang/rustc-dev-guide#1782) - remove (excessive) indentation (rust-lang/rustc-dev-guide#1781) - coverage tests have moved, twice (rust-lang/rustc-dev-guide#1780) - remove extraneous word (rust-lang/rustc-dev-guide#1779) - llvm updates (rust-lang/rustc-dev-guide#1761) - make link more pleasant to eye (rust-lang/rustc-dev-guide#1777) - date-check: test suites/classes using "revisions" (rust-lang/rustc-dev-guide#1738) - share link target (rust-lang/rustc-dev-guide#1740) - indicate full hierarchy of config option (rust-lang/rustc-dev-guide#1776) - remove stray word (rust-lang/rustc-dev-guide#1773) - it is lower-case (rust-lang/rustc-dev-guide#1772) - Suggest enabling patch-binaries-for-nix in `shell.nix` (rust-lang/rustc-dev-guide#1774) - Add additional licensing concerns to docs (rust-lang/rustc-dev-guide#1775) - Fix broken MD link format (rust-lang/rustc-dev-guide#1771) - update internal terminology: Substs -> GenericArgs (rust-lang/rustc-dev-guide#1769) - Update suggested.md : missing word (rust-lang/rustc-dev-guide#1770) - Update outdated doc for types (rust-lang/rustc-dev-guide#1768) - Add dropck documentation (rust-lang/rustc-dev-guide#1767)
Rollup merge of rust-lang#115761 - rustbot:docs-update, r=ehuss Update books ## rust-lang/edition-guide 1 commits in 2751bdcef125468ea2ee006c11992cd1405aebe5..34fca48ed284525b2f124bf93c51af36d6685492 2023-09-06 20:34:00 UTC to 2023-09-06 20:34:00 UTC - Update Rust 2018 "Path and module system changes" for Rust 1.72 (rust-lang/edition-guide#285) ## rust-lang/nomicon 2 commits in 388750b081c0893c275044d37203f97709e058ba..e3f3af69dce71cd37a785bccb7e58449197d940c 2023-09-11 15:57:05 UTC to 2023-09-11 15:55:35 UTC - specify which integer overflows we mean (rust-lang/nomicon#419) - remove 'fail to call destructors' from okay-list (rust-lang/nomicon#420) ## rust-lang/reference 4 commits in d43038932adeb16ada80e206d4c073d851298101..ee7c676fd6e287459cb407337652412c990686c0 2023-09-09 20:08:06 UTC to 2023-08-16 16:59:33 UTC - Specify bit validity and padding of some types (rust-lang/reference#1392) - implementations.md typo fix (rust-lang/reference#1399) - Update section on default layout for `repr(Rust)` (rust-lang/reference#1396) - conditional-compilation.md: Mention the "none" target_os value (rust-lang/reference#1395) ## rust-lang/rust-by-example 4 commits in 07e0df2f006e59d171c6bf3cafa9d61dbeb520d8..c954202c1e1720cba5628f99543cc01188c7d6fc 2023-08-22 18:49:29 UTC to 2023-08-22 18:46:56 UTC - Improve transparency of 5_i32 versus 5i32 (rust-lang/rust-by-example#1707) - Removed redundant comma (rust-lang/rust-by-example#1735) - Fixed link to Functions (rust-lang/rust-by-example#1734) - Pedantic `'static` lifetime corrections (rust-lang/rust-by-example#1732) ## rust-lang/rustc-dev-guide 25 commits in b123ab4754127d822ffb38349ce0fbf561f1b2fd..08bb147d51e815b96e8db7ba4cf870f201c11ff8 2023-09-11 10:36:36 UTC to 2023-08-18 21:13:31 UTC - make link more pleasant to eye too (rust-lang/rustc-dev-guide#1778) - The current playground link used in the page of MIR shows a optimized… (rust-lang/rustc-dev-guide#1789) - Add section about building an optimized version of `rustc` (rust-lang/rustc-dev-guide#1787) - Set max line length in `.editorconfig` to 100 (rust-lang/rustc-dev-guide#1788) - Update minor how-to-build-and-run.md spelling mistake (rust-lang/rustc-dev-guide#1785) - add sections in 'using git' (rust-lang#1675) (rust-lang/rustc-dev-guide#1784) - link std-dev-guide from landing page (rust-lang#1699) (rust-lang/rustc-dev-guide#1783) - Reword sentence about using `./x` over `./x.py` (rust-lang/rustc-dev-guide#1782) - remove (excessive) indentation (rust-lang/rustc-dev-guide#1781) - coverage tests have moved, twice (rust-lang/rustc-dev-guide#1780) - remove extraneous word (rust-lang/rustc-dev-guide#1779) - llvm updates (rust-lang/rustc-dev-guide#1761) - make link more pleasant to eye (rust-lang/rustc-dev-guide#1777) - date-check: test suites/classes using "revisions" (rust-lang/rustc-dev-guide#1738) - share link target (rust-lang/rustc-dev-guide#1740) - indicate full hierarchy of config option (rust-lang/rustc-dev-guide#1776) - remove stray word (rust-lang/rustc-dev-guide#1773) - it is lower-case (rust-lang/rustc-dev-guide#1772) - Suggest enabling patch-binaries-for-nix in `shell.nix` (rust-lang/rustc-dev-guide#1774) - Add additional licensing concerns to docs (rust-lang/rustc-dev-guide#1775) - Fix broken MD link format (rust-lang/rustc-dev-guide#1771) - update internal terminology: Substs -> GenericArgs (rust-lang/rustc-dev-guide#1769) - Update suggested.md : missing word (rust-lang/rustc-dev-guide#1770) - Update outdated doc for types (rust-lang/rustc-dev-guide#1768) - Add dropck documentation (rust-lang/rustc-dev-guide#1767)
Update books ## rust-lang/edition-guide 1 commits in 2751bdcef125468ea2ee006c11992cd1405aebe5..34fca48ed284525b2f124bf93c51af36d6685492 2023-09-06 20:34:00 UTC to 2023-09-06 20:34:00 UTC - Update Rust 2018 "Path and module system changes" for Rust 1.72 (rust-lang/edition-guide#285) ## rust-lang/nomicon 2 commits in 388750b081c0893c275044d37203f97709e058ba..e3f3af69dce71cd37a785bccb7e58449197d940c 2023-09-11 15:57:05 UTC to 2023-09-11 15:55:35 UTC - specify which integer overflows we mean (rust-lang/nomicon#419) - remove 'fail to call destructors' from okay-list (rust-lang/nomicon#420) ## rust-lang/reference 4 commits in d43038932adeb16ada80e206d4c073d851298101..ee7c676fd6e287459cb407337652412c990686c0 2023-09-09 20:08:06 UTC to 2023-08-16 16:59:33 UTC - Specify bit validity and padding of some types (rust-lang/reference#1392) - implementations.md typo fix (rust-lang/reference#1399) - Update section on default layout for `repr(Rust)` (rust-lang/reference#1396) - conditional-compilation.md: Mention the "none" target_os value (rust-lang/reference#1395) ## rust-lang/rust-by-example 4 commits in 07e0df2f006e59d171c6bf3cafa9d61dbeb520d8..c954202c1e1720cba5628f99543cc01188c7d6fc 2023-08-22 18:49:29 UTC to 2023-08-22 18:46:56 UTC - Improve transparency of 5_i32 versus 5i32 (rust-lang/rust-by-example#1707) - Removed redundant comma (rust-lang/rust-by-example#1735) - Fixed link to Functions (rust-lang/rust-by-example#1734) - Pedantic `'static` lifetime corrections (rust-lang/rust-by-example#1732) ## rust-lang/rustc-dev-guide 25 commits in b123ab4754127d822ffb38349ce0fbf561f1b2fd..08bb147d51e815b96e8db7ba4cf870f201c11ff8 2023-09-11 10:36:36 UTC to 2023-08-18 21:13:31 UTC - make link more pleasant to eye too (rust-lang/rustc-dev-guide#1778) - The current playground link used in the page of MIR shows a optimized… (rust-lang/rustc-dev-guide#1789) - Add section about building an optimized version of `rustc` (rust-lang/rustc-dev-guide#1787) - Set max line length in `.editorconfig` to 100 (rust-lang/rustc-dev-guide#1788) - Update minor how-to-build-and-run.md spelling mistake (rust-lang/rustc-dev-guide#1785) - add sections in 'using git' (#1675) (rust-lang/rustc-dev-guide#1784) - link std-dev-guide from landing page (#1699) (rust-lang/rustc-dev-guide#1783) - Reword sentence about using `./x` over `./x.py` (rust-lang/rustc-dev-guide#1782) - remove (excessive) indentation (rust-lang/rustc-dev-guide#1781) - coverage tests have moved, twice (rust-lang/rustc-dev-guide#1780) - remove extraneous word (rust-lang/rustc-dev-guide#1779) - llvm updates (rust-lang/rustc-dev-guide#1761) - make link more pleasant to eye (rust-lang/rustc-dev-guide#1777) - date-check: test suites/classes using "revisions" (rust-lang/rustc-dev-guide#1738) - share link target (rust-lang/rustc-dev-guide#1740) - indicate full hierarchy of config option (rust-lang/rustc-dev-guide#1776) - remove stray word (rust-lang/rustc-dev-guide#1773) - it is lower-case (rust-lang/rustc-dev-guide#1772) - Suggest enabling patch-binaries-for-nix in `shell.nix` (rust-lang/rustc-dev-guide#1774) - Add additional licensing concerns to docs (rust-lang/rustc-dev-guide#1775) - Fix broken MD link format (rust-lang/rustc-dev-guide#1771) - update internal terminology: Substs -> GenericArgs (rust-lang/rustc-dev-guide#1769) - Update suggested.md : missing word (rust-lang/rustc-dev-guide#1770) - Update outdated doc for types (rust-lang/rustc-dev-guide#1768) - Add dropck documentation (rust-lang/rustc-dev-guide#1767)
I just thought the
Box::leak
was example was too good to keep to myself - i think it further emphazises how memory leaks are safe rust.Thank you for maintaining this project!