mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-26 13:01:27 +03:00
Remove AttributeLintKind::UnknownCrateTypesSuggestion variant
This commit is contained in:
committed by
Jonathan Brouwer
parent
6b782884e7
commit
940d0f8245
@@ -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;
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user