Go to file
bors 4c5fc2c334 Auto merge of #130050 - cjgillot:expect-attr-id, r=fee1-dead
Enumerate lint expectations using AttrId

This PR implements the idea I outlined in https://github.com/rust-lang/rust/issues/127884#issuecomment-2240338547

We can uniquely identify a lint expectation `#[expect(lint0, lint1...)]` using the `AttrId` and the index of the lint inside the attribute. This PR uses this property in `check_expectations`.

In addition, this PR stops stashing expected diagnostics to wait for the unstable -> stable `LintExpectationId` mapping: if the lint is emitted with an unstable attribute, it must have been emitted by an `eval_always` query (like inside the resolver), so won't be loaded from cache. Decoding an `AttrId` from the on-disk cache ICEs, so we have no risk of accidentally checking an expectation.

Fixes https://github.com/rust-lang/rust/issues/127884

cc `@xFrednet`
2024-09-11 04:49:56 +00:00
.github Update `library/Cargo.toml` in weekly job 2024-08-19 07:30:11 -05:00
LICENSES Include REUSE.toml in REUSE.toml. 2024-07-22 09:44:18 +01:00
compiler Auto merge of #130050 - cjgillot:expect-attr-id, r=fee1-dead 2024-09-11 04:49:56 +00:00
library Auto merge of #129403 - scottmcm:only-array-simd, r=compiler-errors 2024-09-10 22:47:40 +00:00
src Auto merge of #129975 - notriddle:notriddle/lint-skip, r=GuillaumeGomez 2024-09-11 01:17:54 +00:00
tests Auto merge of #130050 - cjgillot:expect-attr-id, r=fee1-dead 2024-09-11 04:49:56 +00:00
.clang-format Add `.clang-format` 2024-06-26 05:56:00 +08:00
.editorconfig Only use max_line_length = 100 for *.rs 2023-07-10 15:18:36 -07:00
.git-blame-ignore-revs Exclude the copy blessing from git blame 2024-08-18 16:09:03 -07:00
.gitattributes Rename `config.toml.example` to `config.example.toml` 2023-03-11 14:10:00 -08:00
.gitignore gitignore: ignore ICE reports regardless of directory 2024-08-25 14:19:05 +03:00
.gitmodules Enzyme backend 2024-09-05 22:47:23 -04:00
.ignore Add `.ignore` file to make `config.toml` searchable in vscode 2024-06-24 10:15:16 +02:00
.mailmap Rollup merge of #129906 - BoxyUwU:boxy_mailmap, r=lqd 2024-09-02 22:35:23 +02:00
CODE_OF_CONDUCT.md Remove the code of conduct; instead link https://www.rust-lang.org/conduct.html 2019-10-05 22:55:19 +02:00
CONTRIBUTING.md fix: Update CONTRIBUTING.md recommend -> recommended 2023-11-16 23:57:09 +05:30
COPYRIGHT Update COPYRIGHT file 2022-10-30 10:23:14 -04:00
Cargo.lock Auto merge of #129346 - nnethercote:fix-double-handling-in-collect_tokens, r=petrochenkov 2024-09-08 05:35:23 +00:00
Cargo.toml Switch to using the v2 resolver in most workspaces 2024-08-18 13:59:09 -05:00
INSTALL.md Rollup merge of #127434 - onur-ozkan:use-bootstrap-instead-of-rustbuild, r=Mark-Simulacrum 2024-07-13 20:19:45 -07:00
LICENSE-APACHE Remove appendix from LICENCE-APACHE 2019-12-30 14:25:53 +00:00
LICENSE-MIT LICENSE-MIT: Remove inaccurate (misattributed) copyright notice 2017-07-26 16:51:58 -07:00
README.md Use SVG logos in the README.md. 2024-04-03 19:48:20 +02:00
RELEASES.md Rollup merge of #129995 - alexcrichton:remove-wasm32-wasip2-release-notes, r=pietroalbini 2024-09-06 07:33:58 +02:00
REUSE.toml REUSE.toml: Copyright text isn't parsed as Markdown. 2024-08-06 11:04:55 +01:00
config.example.toml Rollup merge of #129473 - Urgau:fix-llvm-if-unchanged, r=onur-ozkan 2024-09-09 19:20:35 -07:00
configure Ensure `./configure` works when `configure.py` path contains spaces 2024-02-16 18:57:22 +00:00
rust-bors.toml Increase timeout for new bors bot 2024-03-13 08:31:07 +01:00
rustfmt.toml Auto merge of #128083 - Mark-Simulacrum:bump-bootstrap, r=albertlarsan68 2024-07-30 17:49:08 +00:00
triagebot.toml Temporarily remove fmease from the review rotation 2024-09-04 11:43:38 +02:00
x Make x capable of resolving symlinks 2023-10-14 17:53:33 +03:00
x.ps1 use `&` instead of start-process in x.ps1 2023-12-09 09:46:16 -05:00
x.py Fix recent python linting errors 2023-08-02 04:40:28 -04:00

README.md

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.