summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_lint/src/lints.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_lint/src/lints.rs')
-rw-r--r--compiler/rustc_lint/src/lints.rs68
1 files changed, 52 insertions, 16 deletions
diff --git a/compiler/rustc_lint/src/lints.rs b/compiler/rustc_lint/src/lints.rs
index 9260237fb..25982a458 100644
--- a/compiler/rustc_lint/src/lints.rs
+++ b/compiler/rustc_lint/src/lints.rs
@@ -250,7 +250,7 @@ impl<'a> DecorateLint<'a, ()> for BuiltinUngatedAsyncFnTrackCaller<'_> {
rustc_session::parse::add_feature_diagnostics(
diag,
&self.parse_sess,
- sym::closure_track_caller,
+ sym::async_fn_track_caller,
);
diag
}
@@ -371,10 +371,6 @@ pub enum BuiltinEllipsisInclusiveRangePatternsLint {
}
#[derive(LintDiagnostic)]
-#[diag(lint_builtin_unnameable_test_items)]
-pub struct BuiltinUnnameableTestItems;
-
-#[derive(LintDiagnostic)]
#[diag(lint_builtin_keyword_idents)]
pub struct BuiltinKeywordIdents {
pub kw: Ident,
@@ -405,18 +401,27 @@ pub struct BuiltinExplicitOutlivesSuggestion {
pub struct BuiltinIncompleteFeatures {
pub name: Symbol,
#[subdiagnostic]
- pub note: Option<BuiltinIncompleteFeaturesNote>,
+ pub note: Option<BuiltinFeatureIssueNote>,
#[subdiagnostic]
pub help: Option<BuiltinIncompleteFeaturesHelp>,
}
+#[derive(LintDiagnostic)]
+#[diag(lint_builtin_internal_features)]
+#[note]
+pub struct BuiltinInternalFeatures {
+ pub name: Symbol,
+ #[subdiagnostic]
+ pub note: Option<BuiltinFeatureIssueNote>,
+}
+
#[derive(Subdiagnostic)]
#[help(lint_help)]
pub struct BuiltinIncompleteFeaturesHelp;
#[derive(Subdiagnostic)]
#[note(lint_note)]
-pub struct BuiltinIncompleteFeaturesNote {
+pub struct BuiltinFeatureIssueNote {
pub n: NonZeroU32,
}
@@ -613,6 +618,24 @@ pub struct ExpectationNote {
pub rationale: Symbol,
}
+// ptr_nulls.rs
+#[derive(LintDiagnostic)]
+pub enum PtrNullChecksDiag<'a> {
+ #[diag(lint_ptr_null_checks_fn_ptr)]
+ #[help(lint_help)]
+ FnPtr {
+ orig_ty: Ty<'a>,
+ #[label]
+ label: Span,
+ },
+ #[diag(lint_ptr_null_checks_ref)]
+ Ref {
+ orig_ty: Ty<'a>,
+ #[label]
+ label: Span,
+ },
+}
+
// for_loops_over_fallibles.rs
#[derive(LintDiagnostic)]
#[diag(lint_for_loops_over_fallibles)]
@@ -739,8 +762,18 @@ pub enum InvalidFromUtf8Diag {
// reference_casting.rs
#[derive(LintDiagnostic)]
-#[diag(lint_invalid_reference_casting)]
-pub struct InvalidReferenceCastingDiag;
+pub enum InvalidReferenceCastingDiag {
+ #[diag(lint_invalid_reference_casting_borrow_as_mut)]
+ BorrowAsMut {
+ #[label]
+ orig_cast: Option<Span>,
+ },
+ #[diag(lint_invalid_reference_casting_assign_to_ref)]
+ AssignToRef {
+ #[label]
+ orig_cast: Option<Span>,
+ },
+}
// hidden_unicode_codepoints.rs
#[derive(LintDiagnostic)]
@@ -770,7 +803,7 @@ impl AddToDiagnostic for HiddenUnicodeCodepointsDiagLabels {
) -> rustc_errors::SubdiagnosticMessage,
{
for (c, span) in self.spans {
- diag.span_label(span, format!("{:?}", c));
+ diag.span_label(span, format!("{c:?}"));
}
}
}
@@ -802,7 +835,7 @@ impl AddToDiagnostic for HiddenUnicodeCodepointsDiagSub {
spans
.into_iter()
.map(|(c, span)| {
- let c = format!("{:?}", c);
+ let c = format!("{c:?}");
(span, c[1..c.len() - 1].to_string())
})
.collect(),
@@ -817,7 +850,7 @@ impl AddToDiagnostic for HiddenUnicodeCodepointsDiagSub {
"escaped",
spans
.into_iter()
- .map(|(c, _)| format!("{:?}", c))
+ .map(|(c, _)| format!("{c:?}"))
.collect::<Vec<String>>()
.join(", "),
);
@@ -1050,8 +1083,10 @@ pub struct IdentifierUncommonCodepoints;
pub struct ConfusableIdentifierPair {
pub existing_sym: Symbol,
pub sym: Symbol,
- #[label]
+ #[label(lint_other_use)]
pub label: Span,
+ #[label(lint_current_use)]
+ pub main_label: Span,
}
#[derive(LintDiagnostic)]
@@ -1225,8 +1260,9 @@ pub enum NonUpperCaseGlobalSub {
#[note]
pub struct NoopMethodCallDiag<'a> {
pub method: Symbol,
- pub receiver_ty: Ty<'a>,
- #[label]
+ pub orig_ty: Ty<'a>,
+ pub trait_: Symbol,
+ #[suggestion(code = "", applicability = "machine-applicable")]
pub label: Span,
}
@@ -1460,7 +1496,7 @@ pub enum InvalidNanComparisons {
#[diag(lint_invalid_nan_comparisons_eq_ne)]
EqNe {
#[subdiagnostic]
- suggestion: InvalidNanComparisonsSuggestion,
+ suggestion: Option<InvalidNanComparisonsSuggestion>,
},
#[diag(lint_invalid_nan_comparisons_lt_le_gt_ge)]
LtLeGtGe,