forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#132095 - gechelberger:fix-131977, r=wesleyw…
…iser Fix rust-lang#131977 parens mangled in shared mut static lint suggestion Resolves rust-lang#131977 for static mut references after discussion with Esteban & Jieyou on [t-compiler/help](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/linting.20with.20parens.20in.20the.20HIR). This doesn't do anything to change the underlying issue if there are other expressions that generate lint suggestions which need to be applied within parentheses.
- Loading branch information
Showing
3 changed files
with
61 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
//Missing paren in diagnostic msg: https://github.com/rust-lang/rust/issues/131977 | ||
//@check-pass | ||
|
||
|
||
static mut TEST: usize = 0; | ||
|
||
fn main() { | ||
let _ = unsafe { (&TEST) as *const usize }; | ||
//~^WARN creating a shared reference to mutable static is discouraged | ||
|
||
let _ = unsafe { ((&mut TEST)) as *const usize }; | ||
//~^WARN creating a mutable reference to mutable static is discouraged | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
warning: creating a shared reference to mutable static is discouraged | ||
--> $DIR/static-mut-shared-parens.rs:8:22 | ||
| | ||
LL | let _ = unsafe { (&TEST) as *const usize }; | ||
| ^^^^^^^ shared reference to mutable static | ||
| | ||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> | ||
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives | ||
= note: `#[warn(static_mut_refs)]` on by default | ||
help: use `&raw const` instead to create a raw pointer | ||
| | ||
LL | let _ = unsafe { (&raw const TEST) as *const usize }; | ||
| ~~~~~~~~~~ | ||
|
||
warning: creating a mutable reference to mutable static is discouraged | ||
--> $DIR/static-mut-shared-parens.rs:11:22 | ||
| | ||
LL | let _ = unsafe { ((&mut TEST)) as *const usize }; | ||
| ^^^^^^^^^^^^^ mutable reference to mutable static | ||
| | ||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> | ||
= note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives | ||
help: use `&raw mut` instead to create a raw pointer | ||
| | ||
LL | let _ = unsafe { ((&raw mut TEST)) as *const usize }; | ||
| ~~~~~~~~ | ||
|
||
warning: 2 warnings emitted | ||
|