about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChayim Refael Friedman <chayimfr@gmail.com>2025-04-10 09:37:37 +0300
committerGitHub <noreply@github.com>2025-04-10 09:37:37 +0300
commitdf0873e888a2f4c89f8aefbea0d58c2804abc508 (patch)
treeff79f16b83cc614ef7fdf83f16c0dfb37b6940b2
parentd711d0a19a834fc4aa31946bf86d86f8eb8569f0 (diff)
downloadrust-df0873e888a2f4c89f8aefbea0d58c2804abc508.tar.gz
rust-df0873e888a2f4c89f8aefbea0d58c2804abc508.zip
Fix a small bug with catastrophic effects
The tiny bug was that `FnFlags::DEPRECTAED_SAFE_2024` and `FnFlags::RUSTC_ALLOW_INCOHERENT_IMPLS` were assigned the same value.

The catastrophic effect was that every function marked as `#[rustc_allow_incoherent_impl]` was considered safe-deprecated for edition 2024, which caused it to be considered unsafe to call when called from edition 2024. And that includes `<[_]>::into_vec()`, which is called by the `vec![]` macro. So, catastrophic effect.

This innocent-looking bug probably arose from the item tree rewrite. No review would've catch that!
-rw-r--r--src/tools/rust-analyzer/crates/hir-def/src/signatures.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-def/src/signatures.rs b/src/tools/rust-analyzer/crates/hir-def/src/signatures.rs
index c0be1b7c68a..86d6445e292 100644
--- a/src/tools/rust-analyzer/crates/hir-def/src/signatures.rs
+++ b/src/tools/rust-analyzer/crates/hir-def/src/signatures.rs
@@ -503,7 +503,7 @@ bitflags! {
         /// it if needed.
         const HAS_TARGET_FEATURE = 1 << 8;
         const DEPRECATED_SAFE_2024 = 1 << 9;
-        const RUSTC_ALLOW_INCOHERENT_IMPLS = 1 << 9;
+        const RUSTC_ALLOW_INCOHERENT_IMPLS = 1 << 10;
     }
 }