mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-27 18:57:42 +03:00
Remove AttributeLintKind::MalFormedDiagnosticAttribute variant
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use std::ops::Range;
|
||||
|
||||
use rustc_errors::E0232;
|
||||
use rustc_errors::{Diagnostic, E0232};
|
||||
use rustc_hir::AttrPath;
|
||||
use rustc_hir::attrs::diagnostic::{
|
||||
Directive, FilterFormatString, Flag, FormatArg, FormatString, LitOrArg, Name, NameValue,
|
||||
@@ -18,6 +18,7 @@
|
||||
use thin_vec::{ThinVec, thin_vec};
|
||||
|
||||
use crate::context::{AcceptContext, Stage};
|
||||
use crate::errors::MalFormedDiagnosticAttributeLint;
|
||||
use crate::parser::{ArgParser, MetaItemListParser, MetaItemOrLitParser, MetaItemParser};
|
||||
|
||||
pub(crate) mod do_not_recommend;
|
||||
@@ -157,12 +158,15 @@ fn parse_list<'p, S: Stage>(
|
||||
);
|
||||
}
|
||||
ArgParser::NameValue(_) => {
|
||||
cx.emit_lint(
|
||||
cx.emit_dyn_lint(
|
||||
MALFORMED_DIAGNOSTIC_ATTRIBUTES,
|
||||
AttributeLintKind::MalFormedDiagnosticAttribute {
|
||||
attribute: mode.as_str(),
|
||||
options: mode.allowed_options(),
|
||||
span,
|
||||
move |dcx, level| {
|
||||
MalFormedDiagnosticAttributeLint {
|
||||
attribute: mode.as_str(),
|
||||
options: mode.allowed_options(),
|
||||
span,
|
||||
}
|
||||
.into_diag(dcx, level)
|
||||
},
|
||||
span,
|
||||
);
|
||||
@@ -188,12 +192,15 @@ fn parse_directive_items<'p, S: Stage>(
|
||||
let span = item.span();
|
||||
|
||||
macro malformed() {{
|
||||
cx.emit_lint(
|
||||
cx.emit_dyn_lint(
|
||||
MALFORMED_DIAGNOSTIC_ATTRIBUTES,
|
||||
AttributeLintKind::MalFormedDiagnosticAttribute {
|
||||
attribute: mode.as_str(),
|
||||
options: mode.allowed_options(),
|
||||
span,
|
||||
move |dcx, level| {
|
||||
MalFormedDiagnosticAttributeLint {
|
||||
attribute: mode.as_str(),
|
||||
options: mode.allowed_options(),
|
||||
span,
|
||||
}
|
||||
.into_diag(dcx, level)
|
||||
},
|
||||
span,
|
||||
);
|
||||
|
||||
@@ -346,3 +346,13 @@ pub(crate) struct IncorrectDoNotRecommendLocation {
|
||||
"this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!"
|
||||
)]
|
||||
pub(crate) struct ExpectedNameValue;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("malformed `{$attribute}` attribute")]
|
||||
#[help("{$options}")]
|
||||
pub(crate) struct MalFormedDiagnosticAttributeLint {
|
||||
pub attribute: &'static str,
|
||||
pub options: &'static str,
|
||||
#[label("invalid option found here")]
|
||||
pub span: Span,
|
||||
}
|
||||
|
||||
@@ -43,10 +43,6 @@ fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a, ()> {
|
||||
.into_diag(dcx, level)
|
||||
}
|
||||
|
||||
&AttributeLintKind::MalFormedDiagnosticAttribute { attribute, options, span } => {
|
||||
lints::MalFormedDiagnosticAttributeLint { attribute, options, span }
|
||||
.into_diag(dcx, level)
|
||||
}
|
||||
AttributeLintKind::MalformedDiagnosticFormat { warning } => match warning {
|
||||
FormatWarning::PositionalArgument { .. } => {
|
||||
lints::DisallowedPositionalArgument.into_diag(dcx, level)
|
||||
|
||||
@@ -3337,13 +3337,3 @@ pub(crate) struct MissingOptionsForDiagnosticAttribute {
|
||||
"only literals are allowed as values for the `message`, `note` and `label` options. These options must be separated by a comma"
|
||||
)]
|
||||
pub(crate) struct NonMetaItemDiagnosticAttribute;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("malformed `{$attribute}` attribute")]
|
||||
#[help("{$options}")]
|
||||
pub(crate) struct MalFormedDiagnosticAttributeLint {
|
||||
pub attribute: &'static str,
|
||||
pub options: &'static str,
|
||||
#[label("invalid option found here")]
|
||||
pub span: Span,
|
||||
}
|
||||
|
||||
@@ -656,7 +656,6 @@ pub enum DeprecatedSinceKind {
|
||||
pub enum AttributeLintKind {
|
||||
UnexpectedCfgName((Symbol, Span), Option<(Symbol, Span)>),
|
||||
UnexpectedCfgValue((Symbol, Span), Option<(Symbol, Span)>),
|
||||
MalFormedDiagnosticAttribute { attribute: &'static str, options: &'static str, span: Span },
|
||||
MalformedDiagnosticFormat { warning: FormatWarning },
|
||||
DiagnosticWrappedParserError { description: String, label: String, span: Span },
|
||||
IgnoredDiagnosticOption { option_name: Symbol, first_span: Span, later_span: Span },
|
||||
|
||||
Reference in New Issue
Block a user