Remove AttributeLintKind::UnknownCrateTypesSuggestion variant

This commit is contained in:
Guillaume Gomez
2026-04-21 12:32:24 +02:00
committed by Jonathan Brouwer
parent 6b782884e7
commit 940d0f8245
5 changed files with 26 additions and 27 deletions
@@ -1,10 +1,11 @@
use rustc_errors::Diagnostic;
use rustc_hir::attrs::{CrateType, WindowsSubsystemKind}; use rustc_hir::attrs::{CrateType, WindowsSubsystemKind};
use rustc_hir::lints::AttributeLintKind;
use rustc_session::lint::builtin::UNKNOWN_CRATE_TYPES; use rustc_session::lint::builtin::UNKNOWN_CRATE_TYPES;
use rustc_span::Symbol; use rustc_span::Symbol;
use rustc_span::edit_distance::find_best_match_for_name; use rustc_span::edit_distance::find_best_match_for_name;
use super::prelude::*; use super::prelude::*;
use crate::errors::{UnknownCrateTypes, UnknownCrateTypesSuggestion};
pub(crate) struct CrateNameParser; pub(crate) struct CrateNameParser;
@@ -65,13 +66,17 @@ fn extend(
crate_type, crate_type,
None, None,
); );
cx.emit_lint( let span = n.value_span;
cx.emit_dyn_lint(
UNKNOWN_CRATE_TYPES, UNKNOWN_CRATE_TYPES,
AttributeLintKind::CrateTypeUnknown { move |dcx, level| {
span: n.value_span, UnknownCrateTypes {
suggested: candidate, sugg: candidate
.map(|s| UnknownCrateTypesSuggestion { span, snippet: s }),
}
.into_diag(dcx, level)
}, },
n.value_span, span,
); );
} }
return None; return None;
+15
View File
@@ -278,6 +278,21 @@ pub(crate) struct DocTestUnknown {
#[diag("`#[diagnostic::do_not_recommend]` does not expect any arguments")] #[diag("`#[diagnostic::do_not_recommend]` does not expect any arguments")]
pub(crate) struct DoNotRecommendDoesNotExpectArgs; pub(crate) struct DoNotRecommendDoesNotExpectArgs;
#[derive(Diagnostic)]
#[diag("invalid `crate_type` value")]
pub(crate) struct UnknownCrateTypes {
#[subdiagnostic]
pub sugg: Option<UnknownCrateTypesSuggestion>,
}
#[derive(Subdiagnostic)]
#[suggestion("did you mean", code = r#""{snippet}""#, applicability = "maybe-incorrect")]
pub(crate) struct UnknownCrateTypesSuggestion {
#[primary_span]
pub span: Span,
pub snippet: Symbol,
}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag("`#[diagnostic::on_const]` can only be applied to non-const trait implementations")] #[diag("`#[diagnostic::on_const]` can only be applied to non-const trait implementations")]
pub(crate) struct DiagnosticOnConstOnlyForTraitImpls { pub(crate) struct DiagnosticOnConstOnlyForTraitImpls {
@@ -43,11 +43,6 @@ fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a, ()> {
.into_diag(dcx, level) .into_diag(dcx, level)
} }
&AttributeLintKind::CrateTypeUnknown { span, suggested } => lints::UnknownCrateTypes {
sugg: suggested.map(|s| lints::UnknownCrateTypesSuggestion { span, snippet: s }),
}
.into_diag(dcx, level),
&AttributeLintKind::MalformedDoc => lints::MalformedDoc.into_diag(dcx, level), &AttributeLintKind::MalformedDoc => lints::MalformedDoc.into_diag(dcx, level),
&AttributeLintKind::ExpectedNoArgs => lints::ExpectedNoArgs.into_diag(dcx, level), &AttributeLintKind::ExpectedNoArgs => lints::ExpectedNoArgs.into_diag(dcx, level),
-15
View File
@@ -3303,21 +3303,6 @@ fn add_to_diag<G: EmissionGuarantee>(self, diag: &mut Diag<'_, G>) {
)] )]
pub(crate) struct ExpectedNameValue; pub(crate) struct ExpectedNameValue;
#[derive(Diagnostic)]
#[diag("invalid `crate_type` value")]
pub(crate) struct UnknownCrateTypes {
#[subdiagnostic]
pub sugg: Option<UnknownCrateTypesSuggestion>,
}
#[derive(Subdiagnostic)]
#[suggestion("did you mean", code = r#""{snippet}""#, applicability = "maybe-incorrect")]
pub(crate) struct UnknownCrateTypesSuggestion {
#[primary_span]
pub span: Span,
pub snippet: Symbol,
}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag("positional format arguments are not allowed here")] #[diag("positional format arguments are not allowed here")]
#[help( #[help(
-1
View File
@@ -656,7 +656,6 @@ pub enum DeprecatedSinceKind {
pub enum AttributeLintKind { pub enum AttributeLintKind {
UnexpectedCfgName((Symbol, Span), Option<(Symbol, Span)>), UnexpectedCfgName((Symbol, Span), Option<(Symbol, Span)>),
UnexpectedCfgValue((Symbol, Span), Option<(Symbol, Span)>), UnexpectedCfgValue((Symbol, Span), Option<(Symbol, Span)>),
CrateTypeUnknown { span: Span, suggested: Option<Symbol> },
MalformedDoc, MalformedDoc,
ExpectedNoArgs, ExpectedNoArgs,
ExpectedNameValue, ExpectedNameValue,