mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-26 13:01:27 +03:00
Remove AttributeLintKind::MalformedDiagnosticFormat variant
This commit is contained in:
@@ -18,7 +18,10 @@
|
||||
use thin_vec::{ThinVec, thin_vec};
|
||||
|
||||
use crate::context::{AcceptContext, Stage};
|
||||
use crate::errors::MalFormedDiagnosticAttributeLint;
|
||||
use crate::errors::{
|
||||
DisallowedPlaceholder, DisallowedPositionalArgument, InvalidFormatSpecifier,
|
||||
MalFormedDiagnosticAttributeLint,
|
||||
};
|
||||
use crate::parser::{ArgParser, MetaItemListParser, MetaItemOrLitParser, MetaItemParser};
|
||||
|
||||
pub(crate) mod do_not_recommend;
|
||||
@@ -252,9 +255,19 @@ fn parse_directive_items<'p, S: Stage>(
|
||||
let (FormatWarning::InvalidSpecifier { span, .. }
|
||||
| FormatWarning::PositionalArgument { span, .. }
|
||||
| FormatWarning::DisallowedPlaceholder { span }) = warning;
|
||||
cx.emit_lint(
|
||||
cx.emit_dyn_lint(
|
||||
MALFORMED_DIAGNOSTIC_FORMAT_LITERALS,
|
||||
AttributeLintKind::MalformedDiagnosticFormat { warning },
|
||||
move |dcx, level| match warning {
|
||||
FormatWarning::PositionalArgument { .. } => {
|
||||
DisallowedPositionalArgument.into_diag(dcx, level)
|
||||
}
|
||||
FormatWarning::InvalidSpecifier { .. } => {
|
||||
InvalidFormatSpecifier.into_diag(dcx, level)
|
||||
}
|
||||
FormatWarning::DisallowedPlaceholder { .. } => {
|
||||
DisallowedPlaceholder.into_diag(dcx, level)
|
||||
}
|
||||
},
|
||||
span,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -356,3 +356,20 @@ pub(crate) struct MalFormedDiagnosticAttributeLint {
|
||||
#[label("invalid option found here")]
|
||||
pub span: Span,
|
||||
}
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("positional format arguments are not allowed here")]
|
||||
#[help(
|
||||
"only named format arguments with the name of one of the generic types are allowed in this context"
|
||||
)]
|
||||
pub(crate) struct DisallowedPositionalArgument;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("format arguments are not allowed here")]
|
||||
#[help("consider removing this format argument")]
|
||||
pub(crate) struct DisallowedPlaceholder;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("invalid format specifier")]
|
||||
#[help("no format specifier are supported in this position")]
|
||||
pub(crate) struct InvalidFormatSpecifier;
|
||||
|
||||
@@ -43,17 +43,6 @@ fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a, ()> {
|
||||
.into_diag(dcx, level)
|
||||
}
|
||||
|
||||
AttributeLintKind::MalformedDiagnosticFormat { warning } => match warning {
|
||||
FormatWarning::PositionalArgument { .. } => {
|
||||
lints::DisallowedPositionalArgument.into_diag(dcx, level)
|
||||
}
|
||||
FormatWarning::InvalidSpecifier { .. } => {
|
||||
lints::InvalidFormatSpecifier.into_diag(dcx, level)
|
||||
}
|
||||
FormatWarning::DisallowedPlaceholder { .. } => {
|
||||
lints::DisallowedPlaceholder.into_diag(dcx, level)
|
||||
}
|
||||
},
|
||||
AttributeLintKind::DiagnosticWrappedParserError { description, label, span } => {
|
||||
lints::WrappedParserError { description, label, span: *span }.into_diag(dcx, level)
|
||||
}
|
||||
|
||||
@@ -3282,23 +3282,6 @@ fn add_to_diag<G: EmissionGuarantee>(self, diag: &mut Diag<'_, G>) {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("positional format arguments are not allowed here")]
|
||||
#[help(
|
||||
"only named format arguments with the name of one of the generic types are allowed in this context"
|
||||
)]
|
||||
pub(crate) struct DisallowedPositionalArgument;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("format arguments are not allowed here")]
|
||||
#[help("consider removing this format argument")]
|
||||
pub(crate) struct DisallowedPlaceholder;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("invalid format specifier")]
|
||||
#[help("no format specifier are supported in this position")]
|
||||
pub(crate) struct InvalidFormatSpecifier;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag("{$description}")]
|
||||
pub(crate) struct WrappedParserError<'a> {
|
||||
|
||||
@@ -656,7 +656,6 @@ pub enum DeprecatedSinceKind {
|
||||
pub enum AttributeLintKind {
|
||||
UnexpectedCfgName((Symbol, Span), Option<(Symbol, Span)>),
|
||||
UnexpectedCfgValue((Symbol, Span), Option<(Symbol, Span)>),
|
||||
MalformedDiagnosticFormat { warning: FormatWarning },
|
||||
DiagnosticWrappedParserError { description: String, label: String, span: Span },
|
||||
IgnoredDiagnosticOption { option_name: Symbol, first_span: Span, later_span: Span },
|
||||
MissingOptionsForDiagnosticAttribute { attribute: &'static str, options: &'static str },
|
||||
|
||||
Reference in New Issue
Block a user