1
Fork 0
Empowering everyone to build reliable and efficient software. Gabriel's commits. https://www.rust-lang.org/
Find a file
Jubilee Young 3fdd8d5ef3 compiler: treat &raw (const|mut) UNSAFE_STATIC implied deref as safe
The implied deref to statics introduced by HIR->THIR lowering is only
used to create place expressions, it lacks unsafe semantics.
It is also confusing, as there is no visible `*ident` in the source.
For both classes of "unsafe static" (extern static and static mut)
allow this operation.

We lack a clear story around `thread_local! { static mut }`, which
is actually its own category of item that reuses the static syntax but
has its own rules. It's possible they should be similarly included, but
in the absence of a good reason one way or another, we do not bless it.
2024-07-22 14:54:36 -07:00
.github Add "Setup Python" action to github-hosted runners 2024-05-26 22:43:52 +00:00
.reuse
compiler compiler: treat &raw (const|mut) UNSAFE_STATIC implied deref as safe 2024-07-22 14:54:36 -07:00
library Rollup merge of #125730 - mu001999-contrib:clippy-fix, r=oli-obk 2024-05-31 17:05:24 +02:00
LICENSES
src Rollup merge of #125816 - Zalathar:demangler, r=oli-obk 2024-05-31 17:05:27 +02:00
tests compiler: treat &raw (const|mut) UNSAFE_STATIC implied deref as safe 2024-07-22 14:54:36 -07:00
.editorconfig
.git-blame-ignore-revs
.gitattributes
.gitignore
.gitmodules refactor: add rustc-perf submodule to src/tools 2024-05-20 14:56:49 +00:00
.mailmap
Cargo.lock Rollup merge of #125089 - Urgau:non_local_def-suggestions, r=estebank 2024-05-28 02:07:47 -07:00
Cargo.toml Remove the expand-yaml-anchors tool 2024-04-29 21:33:17 +02:00
CODE_OF_CONDUCT.md
config.example.toml Remove deprecated field dist.missing-tools 2024-05-25 10:35:07 +03:00
configure
CONTRIBUTING.md
COPYRIGHT
INSTALL.md
LICENSE-APACHE
LICENSE-MIT
README.md
RELEASES.md release notes 1.78: add link to interior-mut breaking change 2024-05-03 14:56:05 +02:00
rust-bors.toml
rustfmt.toml Explain why we don't run rustfmt on tests/incremental/. 2024-05-31 21:30:22 +10:00
triagebot.toml Rollup merge of #125566 - camelid:notify-accepted, r=GuillaumeGomez 2024-05-26 15:28:29 -07:00
x
x.ps1
x.py

This is the main source code repository for Rust. It contains the compiler, standard library, and documentation.

Why Rust?

  • Performance: Fast and memory-efficient, suitable for critical services, embedded devices, and easily integrate with other languages.

  • Reliability: Our rich type system and ownership model ensure memory and thread safety, reducing bugs at compile-time.

  • Productivity: Comprehensive documentation, a compiler committed to providing great diagnostics, and advanced tooling including package manager and build tool (Cargo), auto-formatter (rustfmt), linter (Clippy) and editor support (rust-analyzer).

Quick Start

Read "Installation" from The Book.

Installing from Source

If you really want to install from source (though this is not recommended), see INSTALL.md.

Getting Help

See https://www.rust-lang.org/community for a list of chat platforms and forums.

Contributing

See CONTRIBUTING.md.

License

Rust is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.

Trademark

The Rust Foundation owns and protects the Rust and Cargo trademarks and logos (the "Rust Trademarks").

If you want to use these names or brands, please read the media guide.

Third-party logos may be subject to third-party copyrights and trademarks. See Licenses for details.