diff options
| author | carbotaniuman <41451839+carbotaniuman@users.noreply.github.com> | 2024-06-08 18:39:09 -0500 |
|---|---|---|
| committer | carbotaniuman <41451839+carbotaniuman@users.noreply.github.com> | 2024-06-23 19:02:14 -0500 |
| commit | a23917cfd07b309f32603c6acb81b63aad8504e7 (patch) | |
| tree | 7ead8d9df7c78555088b9e034441f202ab30d94e /compiler/rustc_parse/src/errors.rs | |
| parent | 33422e72c8a66bdb5ee21246a948a1a02ca91674 (diff) | |
| download | rust-a23917cfd07b309f32603c6acb81b63aad8504e7.tar.gz rust-a23917cfd07b309f32603c6acb81b63aad8504e7.zip | |
Add hard error and migration lint for unsafe attrs
Diffstat (limited to 'compiler/rustc_parse/src/errors.rs')
| -rw-r--r-- | compiler/rustc_parse/src/errors.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/compiler/rustc_parse/src/errors.rs b/compiler/rustc_parse/src/errors.rs index 46e15734853..8d49887f164 100644 --- a/compiler/rustc_parse/src/errors.rs +++ b/compiler/rustc_parse/src/errors.rs @@ -2997,3 +2997,34 @@ pub(crate) struct DotDotRangeAttribute { #[primary_span] pub span: Span, } + +#[derive(Diagnostic)] +#[diag(parse_invalid_attr_unsafe)] +#[note] +pub struct InvalidAttrUnsafe { + #[primary_span] + pub span: Span, + pub name: Path, +} + +#[derive(Diagnostic)] +#[diag(parse_unsafe_attr_outside_unsafe)] +pub struct UnsafeAttrOutsideUnsafe { + #[primary_span] + #[label] + pub span: Span, + #[subdiagnostic] + pub suggestion: UnsafeAttrOutsideUnsafeSuggestion, +} + +#[derive(Subdiagnostic)] +#[multipart_suggestion( + parse_unsafe_attr_outside_unsafe_suggestion, + applicability = "machine-applicable" +)] +pub struct UnsafeAttrOutsideUnsafeSuggestion { + #[suggestion_part(code = "unsafe(")] + pub left: Span, + #[suggestion_part(code = ")")] + pub right: Span, +} |
