diff options
| author | bors <bors@rust-lang.org> | 2024-09-20 17:25:34 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-09-20 17:25:34 +0000 |
| commit | 5ba6db1b648d93fbbab4ae0466e40db682fa45fc (patch) | |
| tree | c9c5732d1f0b4eee1f04aa23d4ff945545d2a698 /compiler/rustc_lint/src/lints.rs | |
| parent | fb46739014564a3c709c43e1429a6a5d71c97e26 (diff) | |
| parent | 3b0ce1bc33d30d7d116ee9af60df873e04bd74dc (diff) | |
| download | rust-5ba6db1b648d93fbbab4ae0466e40db682fa45fc.tar.gz rust-5ba6db1b648d93fbbab4ae0466e40db682fa45fc.zip | |
Auto merge of #124895 - obeis:static-mut-hidden-ref, r=compiler-errors
Disallow hidden references to mutable static Closes #123060 Tracking: - https://github.com/rust-lang/rust/issues/123758
Diffstat (limited to 'compiler/rustc_lint/src/lints.rs')
| -rw-r--r-- | compiler/rustc_lint/src/lints.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/compiler/rustc_lint/src/lints.rs b/compiler/rustc_lint/src/lints.rs index 7fabfc9a784..11006862d05 100644 --- a/compiler/rustc_lint/src/lints.rs +++ b/compiler/rustc_lint/src/lints.rs @@ -3061,3 +3061,35 @@ pub(crate) struct UnsafeAttrOutsideUnsafeSuggestion { pub(crate) struct OutOfScopeMacroCalls { pub path: String, } + +#[derive(LintDiagnostic)] +#[diag(lint_static_mut_refs_lint)] +pub(crate) struct RefOfMutStatic<'a> { + #[label] + pub span: Span, + #[subdiagnostic] + pub sugg: Option<MutRefSugg>, + pub shared_label: &'a str, + #[note(lint_shared_note)] + pub shared_note: bool, + #[note(lint_mut_note)] + pub mut_note: bool, +} + +#[derive(Subdiagnostic)] +pub(crate) enum MutRefSugg { + #[multipart_suggestion(lint_suggestion, style = "verbose", applicability = "maybe-incorrect")] + Shared { + #[suggestion_part(code = "&raw const ")] + span: Span, + }, + #[multipart_suggestion( + lint_suggestion_mut, + style = "verbose", + applicability = "maybe-incorrect" + )] + Mut { + #[suggestion_part(code = "&raw mut ")] + span: Span, + }, +} |
