summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJhonny Bill Mena <jhonnybillm@gmail.com>2022-09-18 11:46:56 -0400
committerJhonny Bill Mena <jhonnybillm@gmail.com>2022-09-21 11:39:53 -0400
commita3396b207093c01065b63b0c58f1e6654629166d (patch)
tree7d2b5bd979e9a1da8a2e10404676004876edc147
parent191fac68266b73158ff048c83556ea91cbf977fd (diff)
downloadrust-a3396b207093c01065b63b0c58f1e6654629166d.tar.gz
UPDATE - rename DiagnosticHandler macro to Diagnostic
-rw-r--r--compiler/rustc_ast_lowering/src/errors.rs66
-rw-r--r--compiler/rustc_attr/src/session_diagnostics.rs60
-rw-r--r--compiler/rustc_borrowck/src/session_diagnostics.rs16
-rw-r--r--compiler/rustc_builtin_macros/src/cfg.rs6
-rw-r--r--compiler/rustc_const_eval/src/errors.rs44
-rw-r--r--compiler/rustc_driver/src/session_diagnostics.rs16
-rw-r--r--compiler/rustc_errors/src/diagnostic_builder.rs4
-rw-r--r--compiler/rustc_expand/src/errors.rs14
-rw-r--r--compiler/rustc_interface/src/errors.rs30
-rw-r--r--compiler/rustc_lint/src/errors.rs18
-rw-r--r--compiler/rustc_lint/src/internal.rs4
-rw-r--r--compiler/rustc_macros/src/diagnostics/diagnostic.rs4
-rw-r--r--compiler/rustc_macros/src/diagnostics/diagnostic_builder.rs6
-rw-r--r--compiler/rustc_macros/src/diagnostics/mod.rs6
-rw-r--r--compiler/rustc_macros/src/lib.rs2
-rw-r--r--compiler/rustc_metadata/src/errors.rs154
-rw-r--r--compiler/rustc_middle/src/error.rs8
-rw-r--r--compiler/rustc_mir_dataflow/src/errors.rs22
-rw-r--r--compiler/rustc_monomorphize/src/errors.rs12
-rw-r--r--compiler/rustc_parse/src/parser/diagnostics.rs84
-rw-r--r--compiler/rustc_passes/src/errors.rs104
-rw-r--r--compiler/rustc_plugin_impl/src/errors.rs6
-rw-r--r--compiler/rustc_privacy/src/errors.rs12
-rw-r--r--compiler/rustc_query_system/src/error.rs6
-rw-r--r--compiler/rustc_save_analysis/src/errors.rs4
-rw-r--r--compiler/rustc_session/src/errors.rs8
-rw-r--r--compiler/rustc_span/src/symbol.rs2
-rw-r--r--compiler/rustc_trait_selection/src/errors.rs14
-rw-r--r--compiler/rustc_ty_utils/src/errors.rs6
-rw-r--r--compiler/rustc_typeck/src/check/expr.rs2
-rw-r--r--compiler/rustc_typeck/src/errors.rs54
-rw-r--r--src/test/ui-fulldeps/internal-lints/diagnostics.rs4
-rw-r--r--src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.rs154
-rw-r--r--src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr16
34 files changed, 484 insertions, 484 deletions
diff --git a/compiler/rustc_ast_lowering/src/errors.rs b/compiler/rustc_ast_lowering/src/errors.rs
index 75f20b07277..6dbb2582a37 100644
--- a/compiler/rustc_ast_lowering/src/errors.rs
+++ b/compiler/rustc_ast_lowering/src/errors.rs
@@ -1,8 +1,8 @@
use rustc_errors::{fluent, AddToDiagnostic, Applicability, Diagnostic, DiagnosticArgFromDisplay};
-use rustc_macros::{DiagnosticHandler, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, SessionSubdiagnostic};
use rustc_span::{symbol::Ident, Span, Symbol};
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::generic_type_with_parentheses, code = "E0214")]
pub struct GenericTypeWithParentheses {
#[primary_span]
@@ -28,7 +28,7 @@ impl AddToDiagnostic for UseAngleBrackets {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[help]
#[diag(ast_lowering::invalid_abi, code = "E0703")]
pub struct InvalidAbi {
@@ -39,7 +39,7 @@ pub struct InvalidAbi {
pub valid_abis: String,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::assoc_ty_parentheses)]
pub struct AssocTyParentheses {
#[primary_span]
@@ -71,7 +71,7 @@ impl AddToDiagnostic for AssocTyParenthesesSub {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(ast_lowering::misplaced_impl_trait, code = "E0562")]
pub struct MisplacedImplTrait<'a> {
#[primary_span]
@@ -79,14 +79,14 @@ pub struct MisplacedImplTrait<'a> {
pub position: DiagnosticArgFromDisplay<'a>,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::rustc_box_attribute_error)]
pub struct RustcBoxAttributeError {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::underscore_expr_lhs_assign)]
pub struct UnderscoreExprLhsAssign {
#[primary_span]
@@ -94,7 +94,7 @@ pub struct UnderscoreExprLhsAssign {
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::base_expression_double_dot)]
pub struct BaseExpressionDoubleDot {
#[primary_span]
@@ -102,7 +102,7 @@ pub struct BaseExpressionDoubleDot {
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::await_only_in_async_fn_and_blocks, code = "E0728")]
pub struct AwaitOnlyInAsyncFnAndBlocks {
#[primary_span]
@@ -112,21 +112,21 @@ pub struct AwaitOnlyInAsyncFnAndBlocks {
pub item_span: Option<Span>,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::generator_too_many_parameters, code = "E0628")]
pub struct GeneratorTooManyParameters {
#[primary_span]
pub fn_decl_span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::closure_cannot_be_static, code = "E0697")]
pub struct ClosureCannotBeStatic {
#[primary_span]
pub fn_decl_span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[help]
#[diag(ast_lowering::async_non_move_closure_not_supported, code = "E0708")]
pub struct AsyncNonMoveClosureNotSupported {
@@ -134,7 +134,7 @@ pub struct AsyncNonMoveClosureNotSupported {
pub fn_decl_span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::functional_record_update_destructuring_assignment)]
pub struct FunctionalRecordUpdateDestructuringAssignemnt {
#[primary_span]
@@ -142,28 +142,28 @@ pub struct FunctionalRecordUpdateDestructuringAssignemnt {
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::async_generators_not_supported, code = "E0727")]
pub struct AsyncGeneratorsNotSupported {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::inline_asm_unsupported_target, code = "E0472")]
pub struct InlineAsmUnsupportedTarget {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::att_syntax_only_x86)]
pub struct AttSyntaxOnlyX86 {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::abi_specified_multiple_times)]
pub struct AbiSpecifiedMultipleTimes {
#[primary_span]
@@ -175,14 +175,14 @@ pub struct AbiSpecifiedMultipleTimes {
pub equivalent: Option<()>,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::clobber_abi_not_supported)]
pub struct ClobberAbiNotSupported {
#[primary_span]
pub abi_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[note]
#[diag(ast_lowering::invalid_abi_clobber_abi)]
pub struct InvalidAbiClobberAbi {
@@ -191,7 +191,7 @@ pub struct InvalidAbiClobberAbi {
pub supported_abis: String,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::invalid_register)]
pub struct InvalidRegister<'a> {
#[primary_span]
@@ -200,7 +200,7 @@ pub struct InvalidRegister<'a> {
pub error: &'a str,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::invalid_register_class)]
pub struct InvalidRegisterClass<'a> {
#[primary_span]
@@ -209,7 +209,7 @@ pub struct InvalidRegisterClass<'a> {
pub error: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(ast_lowering::invalid_asm_template_modifier_reg_class)]
pub struct InvalidAsmTemplateModifierRegClass {
#[primary_span]
@@ -229,7 +229,7 @@ pub enum InvalidAsmTemplateModifierRegClassSub {
DoesNotSupportModifier { class_name: Symbol },
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::invalid_asm_template_modifier_const)]
pub struct InvalidAsmTemplateModifierConst {
#[primary_span]
@@ -239,7 +239,7 @@ pub struct InvalidAsmTemplateModifierConst {
pub op_span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::invalid_asm_template_modifier_sym)]
pub struct InvalidAsmTemplateModifierSym {
#[primary_span]
@@ -249,7 +249,7 @@ pub struct InvalidAsmTemplateModifierSym {
pub op_span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::register_class_only_clobber)]
pub struct RegisterClassOnlyClobber {
#[primary_span]
@@ -257,7 +257,7 @@ pub struct RegisterClassOnlyClobber {
pub reg_class_name: Symbol,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::register_conflict)]
pub struct RegisterConflict<'a> {
#[primary_span]
@@ -271,7 +271,7 @@ pub struct RegisterConflict<'a> {
pub in_out: Option<Span>,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[help]
#[diag(ast_lowering::sub_tuple_binding)]
pub struct SubTupleBinding<'a> {
@@ -288,7 +288,7 @@ pub struct SubTupleBinding<'a> {
pub ctx: &'a str,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::extra_double_dot)]
pub struct ExtraDoubleDot<'a> {
#[primary_span]
@@ -299,7 +299,7 @@ pub struct ExtraDoubleDot<'a> {
pub ctx: &'a str,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[note]
#[diag(ast_lowering::misplaced_double_dot)]
pub struct MisplacedDoubleDot {
@@ -307,28 +307,28 @@ pub struct MisplacedDoubleDot {
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::misplaced_relax_trait_bound)]
pub struct MisplacedRelaxTraitBound {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::not_supported_for_lifetime_binder_async_closure)]
pub struct NotSupportedForLifetimeBinderAsyncClosure {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::arbitrary_expression_in_pattern)]
pub struct ArbitraryExpressionInPattern {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler, Clone, Copy)]
+#[derive(Diagnostic, Clone, Copy)]
#[diag(ast_lowering::inclusive_range_with_no_end)]
pub struct InclusiveRangeWithNoEnd {
#[primary_span]
diff --git a/compiler/rustc_attr/src/session_diagnostics.rs b/compiler/rustc_attr/src/session_diagnostics.rs
index 8362b51af40..5e8f9b79850 100644
--- a/compiler/rustc_attr/src/session_diagnostics.rs
+++ b/compiler/rustc_attr/src/session_diagnostics.rs
@@ -5,19 +5,19 @@ use rustc_errors::{
error_code, fluent, Applicability, DiagnosticBuilder, IntoDiagnostic, ErrorGuaranteed,
Handler,
};
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::{Span, Symbol};
use crate::UnsupportedLiteralReason;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::expected_one_cfg_pattern, code = "E0536")]
pub(crate) struct ExpectedOneCfgPattern {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::invalid_predicate, code = "E0537")]
pub(crate) struct InvalidPredicate {
#[primary_span]
@@ -26,7 +26,7 @@ pub(crate) struct InvalidPredicate {
pub predicate: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::multiple_item, code = "E0538")]
pub(crate) struct MultipleItem {
#[primary_span]
@@ -35,7 +35,7 @@ pub(crate) struct MultipleItem {
pub item: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::incorrect_meta_item, code = "E0539")]
pub(crate) struct IncorrectMetaItem {
#[primary_span]
@@ -65,28 +65,28 @@ impl<'a> IntoDiagnostic<'a> for UnknownMetaItem<'_> {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::missing_since, code = "E0542")]
pub(crate) struct MissingSince {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::missing_note, code = "E0543")]
pub(crate) struct MissingNote {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::multiple_stability_levels, code = "E0544")]
pub(crate) struct MultipleStabilityLevels {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::invalid_issue_string, code = "E0545")]
pub(crate) struct InvalidIssueString {
#[primary_span]
@@ -144,21 +144,21 @@ impl InvalidIssueStringCause {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::missing_feature, code = "E0546")]
pub(crate) struct MissingFeature {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::non_ident_feature, code = "E0546")]
pub(crate) struct NonIdentFeature {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::missing_issue, code = "E0547")]
pub(crate) struct MissingIssue {
#[primary_span]
@@ -167,7 +167,7 @@ pub(crate) struct MissingIssue {
// FIXME: This diagnostic is identical to `IncorrectMetaItem`, barring the error code. Consider
// changing this to `IncorrectMetaItem`. See #51489.
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::incorrect_meta_item, code = "E0551")]
pub(crate) struct IncorrectMetaItem2 {
#[primary_span]
@@ -176,14 +176,14 @@ pub(crate) struct IncorrectMetaItem2 {
// FIXME: Why is this the same error code as `InvalidReprHintNoParen` and `InvalidReprHintNoValue`?
// It is more similar to `IncorrectReprFormatGeneric`.
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::incorrect_repr_format_packed_one_or_zero_arg, code = "E0552")]
pub(crate) struct IncorrectReprFormatPackedOneOrZeroArg {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::invalid_repr_hint_no_paren, code = "E0552")]
pub(crate) struct InvalidReprHintNoParen {
#[primary_span]
@@ -192,7 +192,7 @@ pub(crate) struct InvalidReprHintNoParen {
pub name: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::invalid_repr_hint_no_value, code = "E0552")]
pub(crate) struct InvalidReprHintNoValue {
#[primary_span]
@@ -237,7 +237,7 @@ impl<'a> IntoDiagnostic<'a> for UnsupportedLiteral {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::invalid_repr_align_need_arg, code = "E0589")]
pub(crate) struct InvalidReprAlignNeedArg {
#[primary_span]
@@ -245,7 +245,7 @@ pub(crate) struct InvalidReprAlignNeedArg {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::invalid_repr_generic, code = "E0589")]
pub(crate) struct InvalidReprGeneric<'a> {
#[primary_span]
@@ -255,14 +255,14 @@ pub(crate) struct InvalidReprGeneric<'a> {
pub error_part: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::incorrect_repr_format_align_one_arg, code = "E0693")]
pub(crate) struct IncorrectReprFormatAlignOneArg {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::incorrect_repr_format_generic, code = "E0693")]
pub(crate) struct IncorrectReprFormatGeneric<'a> {
#[primary_span]
@@ -317,28 +317,28 @@ impl<'a> IncorrectReprFormatGenericCause<'a> {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::rustc_promotable_pairing, code = "E0717")]
pub(crate) struct RustcPromotablePairing {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::rustc_allowed_unstable_pairing, code = "E0789")]
pub(crate) struct RustcAllowedUnstablePairing {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::cfg_predicate_identifier)]
pub(crate) struct CfgPredicateIdentifier {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::deprecated_item_suggestion)]
pub(crate) struct DeprecatedItemSuggestion {
#[primary_span]
@@ -351,21 +351,21 @@ pub(crate) struct DeprecatedItemSuggestion {
pub details: (),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::expected_single_version_literal)]
pub(crate) struct ExpectedSingleVersionLiteral {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::expected_version_literal)]
pub(crate) struct ExpectedVersionLiteral {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::expects_feature_list)]
pub(crate) struct ExpectsFeatureList {
#[primary_span]
@@ -374,7 +374,7 @@ pub(crate) struct ExpectsFeatureList {
pub name: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::expects_features)]
pub(crate) struct ExpectsFeatures {
#[primary_span]
@@ -383,14 +383,14 @@ pub(crate) struct ExpectsFeatures {
pub name: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::soft_no_args)]
pub(crate) struct SoftNoArgs {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(attr::unknown_version_literal)]
pub(crate) struct UnknownVersionLiteral {
#[primary_span]
diff --git a/compiler/rustc_borrowck/src/session_diagnostics.rs b/compiler/rustc_borrowck/src/session_diagnostics.rs
index 1014a92cc39..aa8f26eece5 100644
--- a/compiler/rustc_borrowck/src/session_diagnostics.rs
+++ b/compiler/rustc_borrowck/src/session_diagnostics.rs
@@ -1,11 +1,11 @@
use rustc_errors::{IntoDiagnosticArg, MultiSpan};
-use rustc_macros::{DiagnosticHandler, LintDiagnostic, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, LintDiagnostic, SessionSubdiagnostic};
use rustc_middle::ty::Ty;
use rustc_span::Span;
use crate::diagnostics::RegionName;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(borrowck::move_unsized, code = "E0161")]
pub(crate) struct MoveUnsized<'tcx> {
pub ty: Ty<'tcx>,
@@ -14,7 +14,7 @@ pub(crate) struct MoveUnsized<'tcx> {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(borrowck::higher_ranked_lifetime_error)]
pub(crate) struct HigherRankedLifetimeError {
#[subdiagnostic]
@@ -31,14 +31,14 @@ pub(crate) enum HigherRankedErrorCause {
CouldNotNormalize { value: String },
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(borrowck::higher_ranked_subtype_error)]
pub(crate) struct HigherRankedSubtypeError {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(borrowck::generic_does_not_live_long_enough)]
pub(crate) struct GenericDoesNotLiveLongEnough {
pub kind: String,
@@ -53,7 +53,7 @@ pub(crate) struct VarNeedNotMut {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(borrowck::const_not_used_in_type_alias)]
pub(crate) struct ConstNotUsedTraitAlias {
pub ct: String,
@@ -61,7 +61,7 @@ pub(crate) struct ConstNotUsedTraitAlias {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(borrowck::var_cannot_escape_closure)]
#[note]
#[note(borrowck::cannot_escape)]
@@ -110,7 +110,7 @@ pub(crate) enum FnMutReturnTypeErr {
},
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(borrowck::lifetime_constraints_error)]
pub(crate) struct LifetimeOutliveErr {
#[primary_span]
diff --git a/compiler/rustc_builtin_macros/src/cfg.rs b/compiler/rustc_builtin_macros/src/cfg.rs
index 55b54fede93..46b54eae384 100644
--- a/compiler/rustc_builtin_macros/src/cfg.rs
+++ b/compiler/rustc_builtin_macros/src/cfg.rs
@@ -8,7 +8,7 @@ use rustc_ast::tokenstream::TokenStream;
use rustc_attr as attr;
use rustc_errors::PResult;
use rustc_expand::base::{self, *};
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::Span;
pub fn expand_cfg(
@@ -35,7 +35,7 @@ pub fn expand_cfg(
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(builtin_macros::requires_cfg_pattern)]
struct RequiresCfgPattern {
#[primary_span]
@@ -43,7 +43,7 @@ struct RequiresCfgPattern {
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(builtin_macros::expected_one_cfg_pattern)]
struct OneCfgPattern {
#[primary_span]
diff --git a/compiler/rustc_const_eval/src/errors.rs b/compiler/rustc_const_eval/src/errors.rs
index d0b94e91abf..c6cb7a8b961 100644
--- a/compiler/rustc_const_eval/src/errors.rs
+++ b/compiler/rustc_const_eval/src/errors.rs
@@ -1,8 +1,8 @@
use rustc_hir::ConstContext;
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::Span;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unstable_in_stable)]
pub(crate) struct UnstableInStable {
pub gate: String,
@@ -21,14 +21,14 @@ pub(crate) struct UnstableInStable {
pub attr_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::thread_local_access, code = "E0625")]
pub(crate) struct NonConstOpErr {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::static_access, code = "E0013")]
#[help]
pub(crate) struct StaticAccessErr {
@@ -40,7 +40,7 @@ pub(crate) struct StaticAccessErr {
pub teach: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::raw_ptr_to_int)]
#[note]
#[note(const_eval::note2)]
@@ -49,7 +49,7 @@ pub(crate) struct RawPtrToIntErr {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::raw_ptr_comparison)]
#[note]
pub(crate) struct RawPtrComparisonErr {
@@ -57,14 +57,14 @@ pub(crate) struct RawPtrComparisonErr {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::panic_non_str)]
pub(crate) struct PanicNonStrErr {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::mut_deref, code = "E0658")]
pub(crate) struct MutDerefErr {
#[primary_span]
@@ -72,7 +72,7 @@ pub(crate) struct MutDerefErr {
pub kind: ConstContext,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::transient_mut_borrow, code = "E0658")]
pub(crate) struct TransientMutBorrowErr {
#[primary_span]
@@ -80,7 +80,7 @@ pub(crate) struct TransientMutBorrowErr {
pub kind: ConstContext,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::transient_mut_borrow_raw, code = "E0658")]
pub(crate) struct TransientMutBorrowErrRaw {
#[primary_span]
@@ -88,7 +88,7 @@ pub(crate) struct TransientMutBorrowErrRaw {
pub kind: ConstContext,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::max_num_nodes_in_const)]
pub(crate) struct MaxNumNodesInConstErr {
#[primary_span]
@@ -96,7 +96,7 @@ pub(crate) struct MaxNumNodesInConstErr {
pub global_const_id: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unallowed_fn_pointer_call)]
pub(crate) struct UnallowedFnPointerCall {
#[primary_span]
@@ -104,7 +104,7 @@ pub(crate) struct UnallowedFnPointerCall {
pub kind: ConstContext,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unstable_const_fn)]
pub(crate) struct UnstableConstFn {
#[primary_span]
@@ -112,7 +112,7 @@ pub(crate) struct UnstableConstFn {
pub def_path: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unallowed_mutable_refs, code = "E0764")]
pub(crate) struct UnallowedMutableRefs {
#[primary_span]
@@ -122,7 +122,7 @@ pub(crate) struct UnallowedMutableRefs {
pub teach: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unallowed_mutable_refs_raw, code = "E0764")]
pub(crate) struct UnallowedMutableRefsRaw {
#[primary_span]
@@ -131,7 +131,7 @@ pub(crate) struct UnallowedMutableRefsRaw {
#[note(const_eval::teach_note)]
pub teach: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::non_const_fmt_macro_call, code = "E0015")]
pub(crate) struct NonConstFmtMacroCall {
#[primary_span]
@@ -139,7 +139,7 @@ pub(crate) struct NonConstFmtMacroCall {
pub kind: ConstContext,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::non_const_fn_call, code = "E0015")]
pub(crate) struct NonConstFnCall {
#[primary_span]
@@ -148,7 +148,7 @@ pub(crate) struct NonConstFnCall {
pub kind: ConstContext,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unallowed_op_in_const_context)]
pub(crate) struct UnallowedOpInConstContext {
#[primary_span]
@@ -156,7 +156,7 @@ pub(crate) struct UnallowedOpInConstContext {
pub msg: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unallowed_heap_allocations, code = "E0010")]
pub(crate) struct UnallowedHeapAllocations {
#[primary_span]
@@ -167,7 +167,7 @@ pub(crate) struct UnallowedHeapAllocations {
pub teach: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::unallowed_inline_asm, code = "E0015")]
pub(crate) struct UnallowedInlineAsm {
#[primary_span]
@@ -175,7 +175,7 @@ pub(crate) struct UnallowedInlineAsm {
pub kind: ConstContext,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::interior_mutable_data_refer, code = "E0492")]
pub(crate) struct InteriorMutableDataRefer {
#[primary_span]
@@ -188,7 +188,7 @@ pub(crate) struct InteriorMutableDataRefer {
pub teach: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(const_eval::interior_mutability_borrow)]
pub(crate) struct InteriorMutabilityBorrow {
#[primary_span]
diff --git a/compiler/rustc_driver/src/session_diagnostics.rs b/compiler/rustc_driver/src/session_diagnostics.rs
index 704d3c7fd2a..289baf17773 100644
--- a/compiler/rustc_driver/src/session_diagnostics.rs
+++ b/compiler/rustc_driver/src/session_diagnostics.rs
@@ -1,38 +1,38 @@
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(driver::rlink_unable_to_read)]
pub(crate) struct RlinkUnableToRead {
pub err: std::io::Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(driver::rlink_wrong_file_type)]
pub(crate) struct RLinkWrongFileType;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(driver::rlink_empty_version_number)]
pub(crate) struct RLinkEmptyVersionNumber;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(driver::rlink_encoding_version_mismatch)]
pub(crate) struct RLinkEncodingVersionMismatch {
pub version_array: String,
pub rlink_version: u32,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(driver::rlink_rustc_version_mismatch)]
pub(crate) struct RLinkRustcVersionMismatch<'a> {
pub rustc_version: String,
pub current_version: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(driver::rlink_no_a_file)]
pub(crate) struct RlinkNotAFile;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(driver::unpretty_dump_fail)]
pub(crate) struct UnprettyDumpFail {
pub path: String,
diff --git a/compiler/rustc_errors/src/diagnostic_builder.rs b/compiler/rustc_errors/src/diagnostic_builder.rs
index 209a50fd306..f9b46053486 100644
--- a/compiler/rustc_errors/src/diagnostic_builder.rs
+++ b/compiler/rustc_errors/src/diagnostic_builder.rs
@@ -14,9 +14,9 @@ use std::ops::{Deref, DerefMut};
use std::thread::panicking;
/// Trait implemented by error types. This should not be implemented manually. Instead, use
-/// `#[derive(DiagnosticHandler)]` -- see [rustc_macros::DiagnosticHandler].
+/// `#[derive(Diagnostic)]` -- see [rustc_macros::Diagnostic].
#[cfg_attr(bootstrap, rustc_diagnostic_item = "SessionDiagnostic")]
-#[cfg_attr(not(bootstrap), rustc_diagnostic_item = "DiagnosticHandler")]
+#[cfg_attr(not(bootstrap), rustc_diagnostic_item = "Diagnostic")]
pub trait IntoDiagnostic<'a, T: EmissionGuarantee = ErrorGuaranteed> {
/// Write out as a diagnostic out of `Handler`.
#[must_use]
diff --git a/compiler/rustc_expand/src/errors.rs b/compiler/rustc_expand/src/errors.rs
index 7cbdad3cd95..bd93f0717f5 100644
--- a/compiler/rustc_expand/src/errors.rs
+++ b/compiler/rustc_expand/src/errors.rs
@@ -1,29 +1,29 @@
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::symbol::MacroRulesNormalizedIdent;
use rustc_span::Span;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(expand::expr_repeat_no_syntax_vars)]
pub(crate) struct NoSyntaxVarsExprRepeat {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(expand::must_repeat_once)]
pub(crate) struct MustRepeatOnce {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(expand::count_repetition_misplaced)]
pub(crate) struct CountRepetitionMisplaced {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(expand::meta_var_expr_unrecognized_var)]
pub(crate) struct MetaVarExprUnrecognizedVar {
#[primary_span]
@@ -31,7 +31,7 @@ pub(crate) struct MetaVarExprUnrecognizedVar {
pub key: MacroRulesNormalizedIdent,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(expand::var_still_repeating)]
pub(crate) struct VarStillRepeating {
#[primary_span]
@@ -39,7 +39,7 @@ pub(crate) struct VarStillRepeating {
pub ident: MacroRulesNormalizedIdent,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(expand::meta_var_dif_seq_matchers)]
pub(crate) struct MetaVarsDifSeqMatchers {
#[primary_span]
diff --git a/compiler/rustc_interface/src/errors.rs b/compiler/rustc_interface/src/errors.rs
index dc975099fc7..097640f26c1 100644
--- a/compiler/rustc_interface/src/errors.rs
+++ b/compiler/rustc_interface/src/errors.rs
@@ -1,10 +1,10 @@
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::{Span, Symbol};
use std::io;
use std::path::Path;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::ferris_identifier)]
pub struct FerrisIdentifier {
#[primary_span]
@@ -13,7 +13,7 @@ pub struct FerrisIdentifier {
pub first_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::emoji_identifier)]
pub struct EmojiIdentifier {
#[primary_span]
@@ -21,67 +21,67 @@ pub struct EmojiIdentifier {
pub ident: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::mixed_bin_crate)]
pub struct MixedBinCrate;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::mixed_proc_macro_crate)]
pub struct MixedProcMacroCrate;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::proc_macro_doc_without_arg)]
pub struct ProcMacroDocWithoutArg;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::error_writing_dependencies)]
pub struct ErrorWritingDependencies<'a> {
pub path: &'a Path,
pub error: io::Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::input_file_would_be_overwritten)]
pub struct InputFileWouldBeOverWritten<'a> {
pub path: &'a Path,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::generated_file_conflicts_with_directory)]
pub struct GeneratedFileConflictsWithDirectory<'a> {
pub input_path: &'a Path,
pub dir_path: &'a Path,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::temps_dir_error)]
pub struct TempsDirError;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::out_dir_error)]
pub struct OutDirError;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::cant_emit_mir)]
pub struct CantEmitMIR {
pub error: io::Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::rustc_error_fatal)]
pub struct RustcErrorFatal {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::rustc_error_unexpected_annotation)]
pub struct RustcErrorUnexpectedAnnotation {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(interface::failed_writing_file)]
pub struct FailedWritingFile<'a> {
pub path: &'a Path,
diff --git a/compiler/rustc_lint/src/errors.rs b/compiler/rustc_lint/src/errors.rs
index e5670833898..0c66ce475c4 100644
--- a/compiler/rustc_lint/src/errors.rs
+++ b/compiler/rustc_lint/src/errors.rs
@@ -1,9 +1,9 @@
use rustc_errors::{fluent, AddToDiagnostic, IntoDiagnostic, ErrorGuaranteed, Handler};
-use rustc_macros::{DiagnosticHandler, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, SessionSubdiagnostic};
use rustc_session::lint::Level;
use rustc_span::{Span, Symbol};
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::overruled_attribute, code = "E0453")]
pub struct OverruledAttribute {
#[primary_span]
@@ -42,7 +42,7 @@ impl AddToDiagnostic for OverruledAttributeSub {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::malformed_attribute, code = "E0452")]
pub struct MalformedAttribute {
#[primary_span]
@@ -61,7 +61,7 @@ pub enum MalformedAttributeSub {
ReasonMustComeLast(#[primary_span] Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::unknown_tool_in_scoped_lint, code = "E0710")]
pub struct UnknownToolInScopedLint {
#[primary_span]
@@ -72,7 +72,7 @@ pub struct UnknownToolInScopedLint {
pub is_nightly_build: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::builtin_ellipsis_inclusive_range_patterns, code = "E0783")]
pub struct BuiltinEllpisisInclusiveRangePatterns {
#[primary_span]
@@ -107,7 +107,7 @@ impl AddToDiagnostic for RequestedLevel {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::unsupported_group, code = "E0602")]
pub struct UnsupportedGroup {
pub lint_group: String,
@@ -136,7 +136,7 @@ impl IntoDiagnostic<'_> for CheckNameUnknown {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::check_name_unknown_tool, code = "E0602")]
pub struct CheckNameUnknownTool {
pub tool_name: Symbol,
@@ -144,7 +144,7 @@ pub struct CheckNameUnknownTool {
pub sub: RequestedLevel,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::check_name_warning)]
pub struct CheckNameWarning {
pub msg: String,
@@ -152,7 +152,7 @@ pub struct CheckNameWarning {
pub sub: RequestedLevel,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(lint::check_name_deprecated)]
pub struct CheckNameDeprecated {
pub lint_name: String,
diff --git a/compiler/rustc_lint/src/internal.rs b/compiler/rustc_lint/src/internal.rs
index 47da8ec5da1..36d8ade22ae 100644
--- a/compiler/rustc_lint/src/internal.rs
+++ b/compiler/rustc_lint/src/internal.rs
@@ -372,7 +372,7 @@ declare_tool_lint! {
declare_tool_lint! {
pub rustc::DIAGNOSTIC_OUTSIDE_OF_IMPL,
Allow,
- "prevent creation of diagnostics outside of `DiagnosticHandler`/`AddToDiagnostic` impls",
+ "prevent creation of diagnostics outside of `IntoDiagnostic`/`AddToDiagnostic` impls",
report_in_external_macro: true
}
@@ -404,7 +404,7 @@ impl LateLintPass<'_> for Diagnostics {
let Impl { of_trait: Some(of_trait), .. } = impl_ &&
let Some(def_id) = of_trait.trait_def_id() &&
let Some(name) = cx.tcx.get_diagnostic_name(def_id) &&
- matches!(name, sym::DiagnosticHandler | sym::AddSubdiagnostic | sym::DecorateLint)
+ matches!(name, sym::Diagnostic | sym::AddSubdiagnostic | sym::DecorateLint)
{
found_impl = true;
break;
diff --git a/compiler/rustc_macros/src/diagnostics/diagnostic.rs b/compiler/rustc_macros/src/diagnostics/diagnostic.rs
index c5b5edab816..c1aae04fcee 100644
--- a/compiler/rustc_macros/src/diagnostics/diagnostic.rs
+++ b/compiler/rustc_macros/src/diagnostics/diagnostic.rs
@@ -21,7 +21,7 @@ impl<'a> SessionDiagnosticDerive<'a> {
builder: DiagnosticDeriveBuilder {
diag,
fields: build_field_mapping(&structure),
- kind: DiagnosticDeriveKind::DiagnosticHandler,
+ kind: DiagnosticDeriveKind::Diagnostic,
code: None,
slug: None,
},
@@ -72,7 +72,7 @@ impl<'a> SessionDiagnosticDerive<'a> {
} else {
span_err(
ast.span().unwrap(),
- "`#[derive(DiagnosticHandler)]` can only be used on structs",
+ "`#[derive(Diagnostic)]` can only be used on structs",
)
.emit();
diff --git a/compiler/rustc_macros/src/diagnostics/diagnostic_builder.rs b/compiler/rustc_macros/src/diagnostics/diagnostic_builder.rs
index 4af3fd23624..32d6ba62a0d 100644
--- a/compiler/rustc_macros/src/diagnostics/diagnostic_builder.rs
+++ b/compiler/rustc_macros/src/diagnostics/diagnostic_builder.rs
@@ -21,12 +21,12 @@ use synstructure::{BindingInfo, Structure};
/// What kind of diagnostic is being derived - a fatal/error/warning or a lint?
#[derive(Copy, Clone, PartialEq, Eq)]
pub(crate) enum DiagnosticDeriveKind {
- DiagnosticHandler,
+ Diagnostic,
LintDiagnostic,
}
/// Tracks persistent information required for building up individual calls to diagnostic methods
-/// for generated diagnostic derives - both `DiagnosticHandler` for fatal/errors/warnings and
+/// for generated diagnostic derives - both `Diagnostic` for fatal/errors/warnings and
/// `LintDiagnostic` for lints.
pub(crate) struct DiagnosticDeriveBuilder {
/// The identifier to use for the generated `DiagnosticBuilder` instance.
@@ -333,7 +333,7 @@ impl DiagnosticDeriveBuilder {
}
"primary_span" => {
match self.kind {
- DiagnosticDeriveKind::DiagnosticHandler => {
+ DiagnosticDeriveKind::Diagnostic => {
report_error_if_not_applied_to_span(attr, &info)?;
Ok(quote! {
diff --git a/compiler/rustc_macros/src/diagnostics/mod.rs b/compiler/rustc_macros/src/diagnostics/mod.rs
index 162089c881e..1d5b32c2556 100644
--- a/compiler/rustc_macros/src/diagnostics/mod.rs
+++ b/compiler/rustc_macros/src/diagnostics/mod.rs
@@ -12,7 +12,7 @@ use quote::format_ident;
use subdiagnostic::SessionSubdiagnosticDerive;
use synstructure::Structure;
-/// Implements `#[derive(DiagnosticHandler)]`, which allows for errors to be specified as a struct,
+/// Implements `#[derive(Diagnostic)]`, which allows for errors to be specified as a struct,
/// independent from the actual diagnostics emitting code.
///
/// ```ignore (rust)
@@ -22,7 +22,7 @@ use synstructure::Structure;
/// # use rustc_span::{symbol::Ident, Span};
/// # extern crate rust_middle;
/// # use rustc_middle::ty::Ty;
-/// #[derive(DiagnosticHandler)]
+/// #[derive(Diagnostic)]
/// #[diag(borrowck::move_out_of_borrow, code = "E0505")]
/// pub struct MoveOutOfBorrowError<'tcx> {
/// pub name: Ident,
@@ -56,7 +56,7 @@ use synstructure::Structure;
/// });
/// ```
///
-/// See rustc dev guide for more examples on using the `#[derive(DiagnosticHandler)]`:
+/// See rustc dev guide for more examples on using the `#[derive(Diagnostic)]`:
/// <https://rustc-dev-guide.rust-lang.org/diagnostics/diagnostic-structs.html>
pub fn session_diagnostic_derive(s: Structure<'_>) -> TokenStream {
SessionDiagnosticDerive::new(format_ident!("diag"), format_ident!("handler"), s).into_tokens()
diff --git a/compiler/rustc_macros/src/lib.rs b/compiler/rustc_macros/src/lib.rs
index 13305782ff1..9dd7ccad8bb 100644
--- a/compiler/rustc_macros/src/lib.rs
+++ b/compiler/rustc_macros/src/lib.rs
@@ -127,7 +127,7 @@ decl_derive!([TypeFoldable, attributes(type_foldable)] => type_foldable::type_fo
decl_derive!([TypeVisitable, attributes(type_visitable)] => type_visitable::type_visitable_derive);
decl_derive!([Lift, attributes(lift)] => lift::lift_derive);
decl_derive!(
- [DiagnosticHandler, attributes(
+ [Diagnostic, attributes(
// struct attributes
diag,
help,
diff --git a/compiler/rustc_metadata/src/errors.rs b/compiler/rustc_metadata/src/errors.rs
index 0a5973ca1aa..8ff4eb5fdbc 100644
--- a/compiler/rustc_metadata/src/errors.rs
+++ b/compiler/rustc_metadata/src/errors.rs
@@ -4,48 +4,48 @@ use std::{
};
use rustc_errors::{error_code, IntoDiagnostic, ErrorGuaranteed};
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_session::config;
use rustc_span::{sym, Span, Symbol};
use rustc_target::spec::{PanicStrategy, TargetTriple};
use crate::locator::CrateFlavor;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::rlib_required)]
pub struct RlibRequired {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::lib_required)]
pub struct LibRequired<'a> {
pub crate_name: Symbol,
pub kind: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::crate_dep_multiple)]
#[help]
pub struct CrateDepMultiple {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::two_panic_runtimes)]
pub struct TwoPanicRuntimes {
pub prev_name: Symbol,
pub cur_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::bad_panic_strategy)]
pub struct BadPanicStrategy {
pub runtime: Symbol,
pub strategy: PanicStrategy,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::required_panic_strategy)]
pub struct RequiredPanicStrategy {
pub crate_name: Symbol,
@@ -53,7 +53,7 @@ pub struct RequiredPanicStrategy {
pub desired_strategy: PanicStrategy,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::incompatible_panic_in_drop_strategy)]
pub struct IncompatiblePanicInDropStrategy {
pub crate_name: Symbol,
@@ -61,56 +61,56 @@ pub struct IncompatiblePanicInDropStrategy {
pub desired_strategy: PanicStrategy,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_names_in_link)]
pub struct MultipleNamesInLink {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_kinds_in_link)]
pub struct MultipleKindsInLink {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_name_form)]
pub struct LinkNameForm {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_kind_form)]
pub struct LinkKindForm {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_modifiers_form)]
pub struct LinkModifiersForm {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_cfg_form)]
pub struct LinkCfgForm {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::wasm_import_form)]
pub struct WasmImportForm {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::empty_link_name, code = "E0454")]
pub struct EmptyLinkName {
#[primary_span]
@@ -118,21 +118,21 @@ pub struct EmptyLinkName {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_framework_apple, code = "E0455")]
pub struct LinkFrameworkApple {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::framework_only_windows, code = "E0455")]
pub struct FrameworkOnlyWindows {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::unknown_link_kind, code = "E0458")]
pub struct UnknownLinkKind<'a> {
#[primary_span]
@@ -141,49 +141,49 @@ pub struct UnknownLinkKind<'a> {
pub kind: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_link_modifiers)]
pub struct MultipleLinkModifiers {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_cfgs)]
pub struct MultipleCfgs {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_cfg_single_predicate)]
pub struct LinkCfgSinglePredicate {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_wasm_import)]
pub struct MultipleWasmImport {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::unexpected_link_arg)]
pub struct UnexpectedLinkArg {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::invalid_link_modifier)]
pub struct InvalidLinkModifier {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_modifiers)]
pub struct MultipleModifiers<'a> {
#[primary_span]
@@ -191,28 +191,28 @@ pub struct MultipleModifiers<'a> {
pub modifier: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::bundle_needs_static)]
pub struct BundleNeedsStatic {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::whole_archive_needs_static)]
pub struct WholeArchiveNeedsStatic {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::as_needed_compatibility)]
pub struct AsNeededCompatibility {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::unknown_link_modifier)]
pub struct UnknownLinkModifier<'a> {
#[primary_span]
@@ -220,14 +220,14 @@ pub struct UnknownLinkModifier<'a> {
pub modifier: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::incompatible_wasm_link)]
pub struct IncompatibleWasmLink {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_requires_name, code = "E0459")]
pub struct LinkRequiresName {
#[primary_span]
@@ -235,105 +235,105 @@ pub struct LinkRequiresName {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::raw_dylib_no_nul)]
pub struct RawDylibNoNul {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::link_ordinal_raw_dylib)]
pub struct LinkOrdinalRawDylib {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::lib_framework_apple)]
pub struct LibFrameworkApple;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::empty_renaming_target)]
pub struct EmptyRenamingTarget<'a> {
pub lib_name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::renaming_no_link)]
pub struct RenamingNoLink<'a> {
pub lib_name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_renamings)]
pub struct MultipleRenamings<'a> {
pub lib_name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::no_link_mod_override)]
pub struct NoLinkModOverride {
#[primary_span]
pub span: Option<Span>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::unsupported_abi_i686)]
pub struct UnsupportedAbiI686 {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::unsupported_abi)]
pub struct UnsupportedAbi {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::fail_create_file_encoder)]
pub struct FailCreateFileEncoder {
pub err: Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::fail_seek_file)]
pub struct FailSeekFile {
pub err: Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::fail_write_file)]
pub struct FailWriteFile {
pub err: Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::crate_not_panic_runtime)]
pub struct CrateNotPanicRuntime {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::no_panic_strategy)]
pub struct NoPanicStrategy {
pub crate_name: Symbol,
pub strategy: PanicStrategy,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::profiler_builtins_needs_core)]
pub struct ProfilerBuiltinsNeedsCore;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::not_profiler_runtime)]
pub struct NotProfilerRuntime {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::no_multiple_global_alloc)]
pub struct NoMultipleGlobalAlloc {
#[primary_span]
@@ -343,18 +343,18 @@ pub struct NoMultipleGlobalAlloc {
pub span1: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::conflicting_global_alloc)]
pub struct ConflictingGlobalAlloc {
pub crate_name: Symbol,
pub other_crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::global_alloc_required)]
pub struct GlobalAllocRequired;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::no_transitive_needs_dep)]
pub struct NoTransitiveNeedsDep<'a> {
pub crate_name: Symbol,
@@ -362,39 +362,39 @@ pub struct NoTransitiveNeedsDep<'a> {
pub deps_crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::failed_write_error)]
pub struct FailedWriteError {
pub filename: PathBuf,
pub err: Error,
}
-#[derive(SessionDiagnostic)]
+#[derive(Diagnostic)]
#[diag(metadata::missing_native_library)]
pub struct MissingNativeLibrary<'a> {
pub libname: &'a str,
}
-#[derive(SessionDiagnostic)]
+#[derive(Diagnostic)]
#[diag(metadata::failed_create_tempdir)]
pub struct FailedCreateTempdir {
pub err: Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::failed_create_file)]
pub struct FailedCreateFile<'a> {
pub filename: &'a Path,
pub err: Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::failed_create_encoded_metadata)]
pub struct FailedCreateEncodedMetadata {
pub err: Error,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::non_ascii_name)]
pub struct NonAsciiName {
#[primary_span]
@@ -402,7 +402,7 @@ pub struct NonAsciiName {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::extern_location_not_exist)]
pub struct ExternLocationNotExist<'a> {
#[primary_span]
@@ -411,7 +411,7 @@ pub struct ExternLocationNotExist<'a> {
pub location: &'a Path,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::extern_location_not_file)]
pub struct ExternLocationNotFile<'a> {
#[primary_span]
@@ -444,7 +444,7 @@ impl IntoDiagnostic<'_> for MultipleCandidates {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_matching_crates, code = "E0464")]
#[note]
pub struct MultipleMatchingCrates {
@@ -454,7 +454,7 @@ pub struct MultipleMatchingCrates {
pub candidates: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::symbol_conflicts_current, code = "E0519")]
pub struct SymbolConflictsCurrent {
#[primary_span]
@@ -462,7 +462,7 @@ pub struct SymbolConflictsCurrent {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::symbol_conflicts_others, code = "E0523")]
pub struct SymbolConflictsOthers {
#[primary_span]
@@ -470,7 +470,7 @@ pub struct SymbolConflictsOthers {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::stable_crate_id_collision)]
pub struct StableCrateIdCollision {
#[primary_span]
@@ -479,7 +479,7 @@ pub struct StableCrateIdCollision {
pub crate_name1: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::dl_error)]
pub struct DlError {
#[primary_span]
@@ -487,7 +487,7 @@ pub struct DlError {
pub err: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::newer_crate_version, code = "E0460")]
#[note]
#[note(metadata::found_crate_versions)]
@@ -499,7 +499,7 @@ pub struct NewerCrateVersion {
pub found_crates: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::no_crate_with_triple, code = "E0461")]
#[note(metadata::found_crate_versions)]
pub struct NoCrateWithTriple<'a> {
@@ -511,7 +511,7 @@ pub struct NoCrateWithTriple<'a> {
pub found_crates: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::found_staticlib, code = "E0462")]
#[note(metadata::found_crate_versions)]
#[help]
@@ -523,7 +523,7 @@ pub struct FoundStaticlib {
pub found_crates: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::incompatible_rustc, code = "E0514")]
#[note(metadata::found_crate_versions)]
#[help]
@@ -617,7 +617,7 @@ impl IntoDiagnostic<'_> for CannotFindCrate {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::no_dylib_plugin, code = "E0457")]
pub struct NoDylibPlugin {
#[primary_span]
@@ -625,7 +625,7 @@ pub struct NoDylibPlugin {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::crate_location_unknown_type)]
pub struct CrateLocationUnknownType<'a> {
#[primary_span]
@@ -633,7 +633,7 @@ pub struct CrateLocationUnknownType<'a> {
pub path: &'a Path,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::lib_filename_form)]
pub struct LibFilenameForm<'a> {
#[primary_span]
@@ -642,28 +642,28 @@ pub struct LibFilenameForm<'a> {
pub dll_suffix: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::multiple_import_name_type)]
pub struct MultipleImportNameType {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::import_name_type_form)]
pub struct ImportNameTypeForm {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::import_name_type_x86)]
pub struct ImportNameTypeX86 {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::unknown_import_name_type)]
pub struct UnknownImportNameType<'a> {
#[primary_span]
@@ -671,7 +671,7 @@ pub struct UnknownImportNameType<'a> {
pub import_name_type: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(metadata::import_name_type_raw)]
pub struct ImportNameTypeRaw {
#[primary_span]
diff --git a/compiler/rustc_middle/src/error.rs b/compiler/rustc_middle/src/error.rs
index effda9c0557..6d15feb888a 100644
--- a/compiler/rustc_middle/src/error.rs
+++ b/compiler/rustc_middle/src/error.rs
@@ -1,9 +1,9 @@
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::Span;
use crate::ty::Ty;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(middle::drop_check_overflow, code = "E0320")]
#[note]
pub struct DropCheckOverflow<'tcx> {
@@ -13,7 +13,7 @@ pub struct DropCheckOverflow<'tcx> {
pub overflow_ty: Ty<'tcx>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(middle::opaque_hidden_type_mismatch)]
pub struct OpaqueHiddenTypeMismatch<'tcx> {
pub self_ty: Ty<'tcx>,
@@ -39,7 +39,7 @@ pub enum TypeMismatchReason {
},
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(middle::limit_invalid)]
pub struct LimitInvalid<'a> {
#[primary_span]
diff --git a/compiler/rustc_mir_dataflow/src/errors.rs b/compiler/rustc_mir_dataflow/src/errors.rs
index 0d36abed2c0..5b1a88cb284 100644
--- a/compiler/rustc_mir_dataflow/src/errors.rs
+++ b/compiler/rustc_mir_dataflow/src/errors.rs
@@ -1,21 +1,21 @@
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::{Span, Symbol};
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::path_must_end_in_filename)]
pub(crate) struct PathMustEndInFilename {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::unknown_formatter)]
pub(crate) struct UnknownFormatter {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::duplicate_values_for)]
pub(crate) struct DuplicateValuesFor {
#[primary_span]
@@ -23,7 +23,7 @@ pub(crate) struct DuplicateValuesFor {
pub name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::requires_an_argument)]
pub(crate) struct RequiresAnArgument {
#[primary_span]
@@ -31,39 +31,39 @@ pub(crate) struct RequiresAnArgument {
pub name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::stop_after_dataflow_ended_compilation)]
pub(crate) struct StopAfterDataFlowEndedCompilation;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::peek_must_be_place_or_ref_place)]
pub(crate) struct PeekMustBePlaceOrRefPlace {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::peek_must_be_not_temporary)]
pub(crate) struct PeekMustBeNotTemporary {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::peek_bit_not_set)]
pub(crate) struct PeekBitNotSet {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::peek_argument_not_a_local)]
pub(crate) struct PeekArgumentNotALocal {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(mir_dataflow::peek_argument_untracked)]
pub(crate) struct PeekArgumentUntracked {
#[primary_span]
diff --git a/compiler/rustc_monomorphize/src/errors.rs b/compiler/rustc_monomorphize/src/errors.rs
index 150a702dc24..cdc2c74ac8f 100644
--- a/compiler/rustc_monomorphize/src/errors.rs
+++ b/compiler/rustc_monomorphize/src/errors.rs
@@ -2,10 +2,10 @@ use std::path::PathBuf;
use rustc_errors::IntoDiagnostic;
use rustc_errors::ErrorGuaranteed;
-use rustc_macros::{DiagnosticHandler, LintDiagnostic};
+use rustc_macros::{Diagnostic, LintDiagnostic};
use rustc_span::Span;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(monomorphize::recursion_limit)]
pub struct RecursionLimit {
#[primary_span]
@@ -19,7 +19,7 @@ pub struct RecursionLimit {
pub path: PathBuf,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(monomorphize::type_length_limit)]
#[help(monomorphize::consider_type_length_limit)]
pub struct TypeLengthLimit {
@@ -32,7 +32,7 @@ pub struct TypeLengthLimit {
pub type_length: usize,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(monomorphize::requires_lang_item)]
pub struct RequiresLangItem {
pub lang_item: String,
@@ -72,11 +72,11 @@ pub struct LargeAssignmentsLint {
pub limit: u64,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(monomorphize::unknown_partition_strategy)]
pub struct UnknownPartitionStrategy;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(monomorphize::symbol_already_defined)]
pub struct SymbolAlreadyDefined {
#[primary_span]
diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs
index 02148193cf0..9989ebb7cdf 100644
--- a/compiler/rustc_parse/src/parser/diagnostics.rs
+++ b/compiler/rustc_parse/src/parser/diagnostics.rs
@@ -20,7 +20,7 @@ use rustc_errors::{
fluent, Applicability, DiagnosticBuilder, DiagnosticMessage, Handler, MultiSpan, PResult,
};
use rustc_errors::{pluralize, struct_span_err, Diagnostic, ErrorGuaranteed};
-use rustc_macros::{DiagnosticHandler, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, SessionSubdiagnostic};
use rustc_span::source_map::Spanned;
use rustc_span::symbol::{kw, sym, Ident};
use rustc_span::{Span, SpanSnippetError, DUMMY_SP};
@@ -242,7 +242,7 @@ impl MultiSugg {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::maybe_report_ambiguous_plus)]
struct AmbiguousPlus {
pub sum_ty: String,
@@ -251,7 +251,7 @@ struct AmbiguousPlus {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::maybe_recover_from_bad_type_plus, code = "E0178")]
struct BadTypePlus {
pub ty: String,
@@ -285,7 +285,7 @@ pub enum BadTypePlusSub {
},
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::maybe_recover_from_bad_qpath_stage_2)]
struct BadQPathStage2 {
#[primary_span]
@@ -294,7 +294,7 @@ struct BadQPathStage2 {
ty: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::incorrect_semicolon)]
struct IncorrectSemicolon<'a> {
#[primary_span]
@@ -305,7 +305,7 @@ struct IncorrectSemicolon<'a> {
name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::incorrect_use_of_await)]
struct IncorrectUseOfAwait {
#[primary_span]
@@ -313,7 +313,7 @@ struct IncorrectUseOfAwait {
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::incorrect_use_of_await)]
struct IncorrectAwait {
#[primary_span]
@@ -324,7 +324,7 @@ struct IncorrectAwait {
question_mark: &'static str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::in_in_typo)]
struct InInTypo {
#[primary_span]
@@ -333,7 +333,7 @@ struct InInTypo {
sugg_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_variable_declaration)]
pub struct InvalidVariableDeclaration {
#[primary_span]
@@ -362,7 +362,7 @@ pub enum InvalidVariableDeclarationSub {
UseLetNotVar(#[primary_span] Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_comparison_operator)]
pub(crate) struct InvalidComparisonOperator {
#[primary_span]
@@ -389,7 +389,7 @@ pub(crate) enum InvalidComparisonOperatorSub {
Spaceship(#[primary_span] Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_logical_operator)]
#[note]
pub(crate) struct InvalidLogicalOperator {
@@ -416,7 +416,7 @@ pub(crate) enum InvalidLogicalOperatorSub {
Disjunction(#[primary_span] Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::tilde_is_not_unary_operator)]
pub(crate) struct TildeAsUnaryOperator(
#[primary_span]
@@ -424,7 +424,7 @@ pub(crate) struct TildeAsUnaryOperator(
pub Span,
);
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::unexpected_token_after_not)]
pub(crate) struct NotAsNegationOperator {
#[primary_span]
@@ -458,7 +458,7 @@ pub enum NotAsNegationOperatorSub {
SuggestNotLogical(#[primary_span] Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::malformed_loop_label)]
pub(crate) struct MalformedLoopLabel {
#[primary_span]
@@ -467,7 +467,7 @@ pub(crate) struct MalformedLoopLabel {
pub correct_label: Ident,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::lifetime_in_borrow_expression)]
pub(crate) struct LifetimeInBorrowExpression {
#[primary_span]
@@ -477,15 +477,15 @@ pub(crate) struct LifetimeInBorrowExpression {
pub lifetime_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::field_expression_with_generic)]
pub(crate) struct FieldExpressionWithGeneric(#[primary_span] pub Span);
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::macro_invocation_with_qualified_path)]
pub(crate) struct MacroInvocationWithQualifiedPath(#[primary_span] pub Span);
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::unexpected_token_after_label)]
pub(crate) struct UnexpectedTokenAfterLabel(
#[primary_span]
@@ -493,7 +493,7 @@ pub(crate) struct UnexpectedTokenAfterLabel(
pub Span,
);
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::require_colon_after_labeled_expression)]
#[note]
pub(crate) struct RequireColonAfterLabeledExpression {
@@ -505,7 +505,7 @@ pub(crate) struct RequireColonAfterLabeledExpression {
pub label_end: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::do_catch_syntax_removed)]
#[note]
pub(crate) struct DoCatchSyntaxRemoved {
@@ -514,7 +514,7 @@ pub(crate) struct DoCatchSyntaxRemoved {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::float_literal_requires_integer_part)]
pub(crate) struct FloatLiteralRequiresIntegerPart {
#[primary_span]
@@ -523,7 +523,7 @@ pub(crate) struct FloatLiteralRequiresIntegerPart {
pub correct: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_int_literal_width)]
#[help]
pub(crate) struct InvalidIntLiteralWidth {
@@ -532,7 +532,7 @@ pub(crate) struct InvalidIntLiteralWidth {
pub width: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_num_literal_base_prefix)]
#[note]
pub(crate) struct InvalidNumLiteralBasePrefix {
@@ -542,7 +542,7 @@ pub(crate) struct InvalidNumLiteralBasePrefix {
pub fixed: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_num_literal_suffix)]
#[help]
pub(crate) struct InvalidNumLiteralSuffix {
@@ -552,7 +552,7 @@ pub(crate) struct InvalidNumLiteralSuffix {
pub suffix: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_float_literal_width)]
#[help]
pub(crate) struct InvalidFloatLiteralWidth {
@@ -561,7 +561,7 @@ pub(crate) struct InvalidFloatLiteralWidth {
pub width: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_float_literal_suffix)]
#[help]
pub(crate) struct InvalidFloatLiteralSuffix {
@@ -571,14 +571,14 @@ pub(crate) struct InvalidFloatLiteralSuffix {
pub suffix: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::int_literal_too_large)]
pub(crate) struct IntLiteralTooLarge {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::missing_semicolon_before_array)]
pub(crate) struct MissingSemicolonBeforeArray {
#[primary_span]
@@ -587,7 +587,7 @@ pub(crate) struct MissingSemicolonBeforeArray {
pub semicolon: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::invalid_block_macro_segment)]
pub(crate) struct InvalidBlockMacroSegment {
#[primary_span]
@@ -596,7 +596,7 @@ pub(crate) struct InvalidBlockMacroSegment {
pub context: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::if_expression_missing_then_block)]
pub(crate) struct IfExpressionMissingThenBlock {
#[primary_span]
@@ -613,7 +613,7 @@ pub(crate) enum IfExpressionMissingThenBlockSub {
AddThenBlock(#[primary_span] Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::if_expression_missing_condition)]
pub(crate) struct IfExpressionMissingCondition {
#[primary_span]
@@ -623,14 +623,14 @@ pub(crate) struct IfExpressionMissingCondition {
pub block_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::expected_expression_found_let)]
pub(crate) struct ExpectedExpressionFoundLet {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::expected_else_block)]
pub(crate) struct ExpectedElseBlock {
#[primary_span]
@@ -642,7 +642,7 @@ pub(crate) struct ExpectedElseBlock {
pub condition_start: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::outer_attribute_not_allowed_on_if_else)]
pub(crate) struct OuterAttributeNotAllowedOnIfElse {
#[primary_span]
@@ -659,7 +659,7 @@ pub(crate) struct OuterAttributeNotAllowedOnIfElse {
pub attributes: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::missing_in_in_for_loop)]
pub(crate) struct MissingInInForLoop {
#[primary_span]
@@ -677,7 +677,7 @@ pub(crate) enum MissingInInForLoopSub {
AddIn(#[primary_span] Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::missing_comma_after_match_arm)]
pub(crate) struct MissingCommaAfterMatchArm {
#[primary_span]
@@ -685,7 +685,7 @@ pub(crate) struct MissingCommaAfterMatchArm {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::catch_after_try)]
#[help]
pub(crate) struct CatchAfterTry {
@@ -693,7 +693,7 @@ pub(crate) struct CatchAfterTry {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::comma_after_base_struct)]
#[note]
pub(crate) struct CommaAfterBaseStruct {
@@ -703,7 +703,7 @@ pub(crate) struct CommaAfterBaseStruct {
pub comma: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::eq_field_init)]
pub(crate) struct EqFieldInit {
#[primary_span]
@@ -712,7 +712,7 @@ pub(crate) struct EqFieldInit {
pub eq: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::dotdotdot)]
pub(crate) struct DotDotDot {
#[primary_span]
@@ -721,7 +721,7 @@ pub(crate) struct DotDotDot {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::left_arrow_operator)]
pub(crate) struct LeftArrowOperator {
#[primary_span]
@@ -729,7 +729,7 @@ pub(crate) struct LeftArrowOperator {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::remove_let)]
pub(crate) struct RemoveLet {
#[primary_span]
diff --git a/compiler/rustc_passes/src/errors.rs b/compiler/rustc_passes/src/errors.rs
index ade5927be8e..bff2978bd13 100644
--- a/compiler/rustc_passes/src/errors.rs
+++ b/compiler/rustc_passes/src/errors.rs
@@ -1,5 +1,5 @@
use rustc_errors::{Applicability, MultiSpan};
-use rustc_macros::{DiagnosticHandler, LintDiagnostic, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, LintDiagnostic, SessionSubdiagnostic};
use rustc_span::{Span, Symbol};
#[derive(LintDiagnostic)]
@@ -32,7 +32,7 @@ pub struct IgnoredInlineAttrFnProto;
#[note]
pub struct IgnoredInlineAttrConstants;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::inline_not_fn_or_closure, code = "E0518")]
pub struct InlineNotFnOrClosure {
#[primary_span]
@@ -53,7 +53,7 @@ pub struct IgnoredNoCoveragePropagate;
#[diag(passes::no_coverage_fn_defn)]
pub struct IgnoredNoCoverageFnDefn;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::no_coverage_not_coverable, code = "E0788")]
pub struct IgnoredNoCoverageNotCoverable {
#[primary_span]
@@ -62,7 +62,7 @@ pub struct IgnoredNoCoverageNotCoverable {
pub defn_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::should_be_applied_to_fn)]
pub struct AttrShouldBeAppliedToFn {
#[primary_span]
@@ -71,14 +71,14 @@ pub struct AttrShouldBeAppliedToFn {
pub defn_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::naked_tracked_caller, code = "E0736")]
pub struct NakedTrackedCaller {
#[primary_span]
pub attr_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::should_be_applied_to_fn, code = "E0739")]
pub struct TrackedCallerWrongLocation {
#[primary_span]
@@ -87,7 +87,7 @@ pub struct TrackedCallerWrongLocation {
pub defn_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::should_be_applied_to_struct_enum, code = "E0701")]
pub struct NonExhaustiveWrongLocation {
#[primary_span]
@@ -96,7 +96,7 @@ pub struct NonExhaustiveWrongLocation {
pub defn_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::should_be_applied_to_trait)]
pub struct AttrShouldBeAppliedToTrait {
#[primary_span]
@@ -109,7 +109,7 @@ pub struct AttrShouldBeAppliedToTrait {
#[diag(passes::target_feature_on_statement)]
pub struct TargetFeatureOnStatement;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::should_be_applied_to_static)]
pub struct AttrShouldBeAppliedToStatic {
#[primary_span]
@@ -118,7 +118,7 @@ pub struct AttrShouldBeAppliedToStatic {
pub defn_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_expect_str)]
pub struct DocExpectStr<'a> {
#[primary_span]
@@ -126,7 +126,7 @@ pub struct DocExpectStr<'a> {
pub attr_name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_alias_empty)]
pub struct DocAliasEmpty<'a> {
#[primary_span]
@@ -134,7 +134,7 @@ pub struct DocAliasEmpty<'a> {
pub attr_str: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_alias_bad_char)]
pub struct DocAliasBadChar<'a> {
#[primary_span]
@@ -143,7 +143,7 @@ pub struct DocAliasBadChar<'a> {
pub char_: char,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_alias_start_end)]
pub struct DocAliasStartEnd<'a> {
#[primary_span]
@@ -151,7 +151,7 @@ pub struct DocAliasStartEnd<'a> {
pub attr_str: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_alias_bad_location)]
pub struct DocAliasBadLocation<'a> {
#[primary_span]
@@ -160,7 +160,7 @@ pub struct DocAliasBadLocation<'a> {
pub location: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_alias_not_an_alias)]
pub struct DocAliasNotAnAlias<'a> {
#[primary_span]
@@ -175,35 +175,35 @@ pub struct DocAliasDuplicated {
pub first_defn: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_alias_not_string_literal)]
pub struct DocAliasNotStringLiteral {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_alias_malformed)]
pub struct DocAliasMalformed {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_keyword_empty_mod)]
pub struct DocKeywordEmptyMod {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_keyword_not_mod)]
pub struct DocKeywordNotMod {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_keyword_invalid_ident)]
pub struct DocKeywordInvalidIdent {
#[primary_span]
@@ -211,21 +211,21 @@ pub struct DocKeywordInvalidIdent {
pub doc_keyword: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_fake_variadic_not_valid)]
pub struct DocFakeVariadicNotValid {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_keyword_only_impl)]
pub struct DocKeywordOnlyImpl {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_inline_conflict)]
#[help]
pub struct DocKeywordConflict {
@@ -243,7 +243,7 @@ pub struct DocInlineOnlyUse {
pub item_span: Option<Span>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::doc_attr_not_crate_level)]
pub struct DocAttrNotCrateLevel<'a> {
#[primary_span]
@@ -295,7 +295,7 @@ pub struct DocTestUnknownInclude {
#[diag(passes::doc_invalid)]
pub struct DocInvalid;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::pass_by_value)]
pub struct PassByValue {
#[primary_span]
@@ -304,7 +304,7 @@ pub struct PassByValue {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::allow_incoherent_impl)]
pub struct AllowIncoherentImpl {
#[primary_span]
@@ -313,7 +313,7 @@ pub struct AllowIncoherentImpl {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::has_incoherent_inherent_impl)]
pub struct HasIncoherentInherentImpl {
#[primary_span]
@@ -336,7 +336,7 @@ pub struct MustUseNoEffect {
pub target: rustc_hir::Target,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::must_not_suspend)]
pub struct MustNotSuspend {
#[primary_span]
@@ -372,7 +372,7 @@ pub struct LinkName<'a> {
pub value: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::no_link)]
pub struct NoLink {
#[primary_span]
@@ -381,7 +381,7 @@ pub struct NoLink {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::export_name)]
pub struct ExportName {
#[primary_span]
@@ -390,7 +390,7 @@ pub struct ExportName {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_layout_scalar_valid_range_not_struct)]
pub struct RustcLayoutScalarValidRangeNotStruct {
#[primary_span]
@@ -399,14 +399,14 @@ pub struct RustcLayoutScalarValidRangeNotStruct {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_layout_scalar_valid_range_arg)]
pub struct RustcLayoutScalarValidRangeArg {
#[primary_span]
pub attr_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_legacy_const_generics_only)]
pub struct RustcLegacyConstGenericsOnly {
#[primary_span]
@@ -415,7 +415,7 @@ pub struct RustcLegacyConstGenericsOnly {
pub param_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_legacy_const_generics_index)]
pub struct RustcLegacyConstGenericsIndex {
#[primary_span]
@@ -424,7 +424,7 @@ pub struct RustcLegacyConstGenericsIndex {
pub generics_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_legacy_const_generics_index_exceed)]
pub struct RustcLegacyConstGenericsIndexExceed {
#[primary_span]
@@ -433,14 +433,14 @@ pub struct RustcLegacyConstGenericsIndexExceed {
pub arg_count: usize,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_legacy_const_generics_index_negative)]
pub struct RustcLegacyConstGenericsIndexNegative {
#[primary_span]
pub invalid_args: Vec<Span>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_dirty_clean)]
pub struct RustcDirtyClean {
#[primary_span]
@@ -475,7 +475,7 @@ pub struct NoMangle {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::repr_ident, code = "E0565")]
pub struct ReprIdent {
#[primary_span]
@@ -486,21 +486,21 @@ pub struct ReprIdent {
#[diag(passes::repr_conflicting, code = "E0566")]
pub struct ReprConflicting;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::used_static)]
pub struct UsedStatic {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::used_compiler_linker)]
pub struct UsedCompilerLinker {
#[primary_span]
pub spans: Vec<Span>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::allow_internal_unstable)]
pub struct AllowInternalUnstable {
#[primary_span]
@@ -509,14 +509,14 @@ pub struct AllowInternalUnstable {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::debug_visualizer_placement)]
pub struct DebugVisualizerPlacement {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::debug_visualizer_invalid)]
#[note(passes::note_1)]
#[note(passes::note_2)]
@@ -526,7 +526,7 @@ pub struct DebugVisualizerInvalid {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_allow_const_fn_unstable)]
pub struct RustcAllowConstFnUnstable {
#[primary_span]
@@ -535,7 +535,7 @@ pub struct RustcAllowConstFnUnstable {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_std_internal_symbol)]
pub struct RustcStdInternalSymbol {
#[primary_span]
@@ -544,21 +544,21 @@ pub struct RustcStdInternalSymbol {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::const_trait)]
pub struct ConstTrait {
#[primary_span]
pub attr_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::link_ordinal)]
pub struct LinkOrdinal {
#[primary_span]
pub attr_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::stability_promotable)]
pub struct StabilityPromotable {
#[primary_span]
@@ -602,7 +602,7 @@ pub struct Unused {
pub note: UnusedNote,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::non_exported_macro_invalid_attrs, code = "E0518")]
pub struct NonExportedMacroInvalidAttrs {
#[primary_span]
@@ -621,7 +621,7 @@ pub struct UnusedDuplicate {
pub warning: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::unused_multiple)]
pub struct UnusedMultiple {
#[primary_span]
@@ -632,7 +632,7 @@ pub struct UnusedMultiple {
pub name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_lint_opt_ty)]
pub struct RustcLintOptTy {
#[primary_span]
@@ -641,7 +641,7 @@ pub struct RustcLintOptTy {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(passes::rustc_lint_opt_deny_field_access)]
pub struct RustcLintOptDenyFieldAccess {
#[primary_span]
diff --git a/compiler/rustc_plugin_impl/src/errors.rs b/compiler/rustc_plugin_impl/src/errors.rs
index 0b2c09f9e1d..07ce92a9b26 100644
--- a/compiler/rustc_plugin_impl/src/errors.rs
+++ b/compiler/rustc_plugin_impl/src/errors.rs
@@ -1,9 +1,9 @@
//! Errors emitted by plugin_impl
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_span::Span;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(plugin_impl::load_plugin_error)]
pub struct LoadPluginError {
#[primary_span]
@@ -11,7 +11,7 @@ pub struct LoadPluginError {
pub msg: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(plugin_impl::malformed_plugin_attribute, code = "E0498")]
pub struct MalformedPluginAttribute {
#[primary_span]
diff --git a/compiler/rustc_privacy/src/errors.rs b/compiler/rustc_privacy/src/errors.rs
index 56a2cb059b5..71552119482 100644
--- a/compiler/rustc_privacy/src/errors.rs
+++ b/compiler/rustc_privacy/src/errors.rs
@@ -1,8 +1,8 @@
use rustc_errors::DiagnosticArgFromDisplay;
-use rustc_macros::{DiagnosticHandler, LintDiagnostic, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, LintDiagnostic, SessionSubdiagnostic};
use rustc_span::{Span, Symbol};
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(privacy::field_is_private, code = "E0451")]
pub struct FieldIsPrivate {
#[primary_span]
@@ -29,7 +29,7 @@ pub enum FieldIsPrivateLabel {
},
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(privacy::item_is_private)]
pub struct ItemIsPrivate<'a> {
#[primary_span]
@@ -39,7 +39,7 @@ pub struct ItemIsPrivate<'a> {
pub descr: DiagnosticArgFromDisplay<'a>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(privacy::unnamed_item_is_private)]
pub struct UnnamedItemIsPrivate {
#[primary_span]
@@ -48,7 +48,7 @@ pub struct UnnamedItemIsPrivate {
}
// Duplicate of `InPublicInterface` but with a different error code, shares the same slug.
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(privacy::in_public_interface, code = "E0445")]
pub struct InPublicInterfaceTraits<'a> {
#[primary_span]
@@ -62,7 +62,7 @@ pub struct InPublicInterfaceTraits<'a> {
}
// Duplicate of `InPublicInterfaceTraits` but with a different error code, shares the same slug.
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(privacy::in_public_interface, code = "E0446")]
pub struct InPublicInterface<'a> {
#[primary_span]
diff --git a/compiler/rustc_query_system/src/error.rs b/compiler/rustc_query_system/src/error.rs
index 97a74517f68..4c770152f12 100644
--- a/compiler/rustc_query_system/src/error.rs
+++ b/compiler/rustc_query_system/src/error.rs
@@ -46,7 +46,7 @@ pub struct CycleUsage {
pub usage: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(query_system::cycle, code = "E0391")]
pub struct Cycle {
#[primary_span]
@@ -62,11 +62,11 @@ pub struct Cycle {
pub cycle_usage: Option<CycleUsage>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(query_system::reentrant)]
pub struct Reentrant;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(query_system::increment_compilation)]
#[help]
#[note(query_system::increment_compilation_note1)]
diff --git a/compiler/rustc_save_analysis/src/errors.rs b/compiler/rustc_save_analysis/src/errors.rs
index 0983ec2f6f7..8a15ba63661 100644
--- a/compiler/rustc_save_analysis/src/errors.rs
+++ b/compiler/rustc_save_analysis/src/errors.rs
@@ -1,8 +1,8 @@
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use std::path::Path;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(save_analysis::could_not_open)]
pub(crate) struct CouldNotOpen<'a> {
pub file_name: &'a Path,
diff --git a/compiler/rustc_session/src/errors.rs b/compiler/rustc_session/src/errors.rs
index 4cf46109895..7ffe757463f 100644
--- a/compiler/rustc_session/src/errors.rs
+++ b/compiler/rustc_session/src/errors.rs
@@ -8,7 +8,7 @@ use rustc_span::{Span, Symbol};
use rustc_target::abi::TargetDataLayoutErrors;
use rustc_target::spec::{SplitDebuginfo, StackProtector, TargetTriple};
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(session::incorrect_cgu_reuse_type)]
pub struct IncorrectCguReuseType<'a> {
#[primary_span]
@@ -19,14 +19,14 @@ pub struct IncorrectCguReuseType<'a> {
pub at_least: u8,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(session::cgu_not_recorded)]
pub struct CguNotRecorded<'a> {
pub cgu_user_name: &'a str,
pub cgu_name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(session::feature_gate_error, code = "E0658")]
pub struct FeatureGateError<'a> {
#[primary_span]
@@ -46,7 +46,7 @@ pub struct FeatureDiagnosticHelp {
pub feature: Symbol,
}
-impl DiagnosticHandler<'_, !> for TargetDataLayoutErrors<'_> {
+impl IntoDiagnostic<'_, !> for TargetDataLayoutErrors<'_> {
fn into_diagnostic(self, handler: &Handler) -> DiagnosticBuilder<'_, !> {
let mut diag;
match self {
diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs
index 98ff9694808..ea69334616b 100644
--- a/compiler/rustc_span/src/symbol.rs
+++ b/compiler/rustc_span/src/symbol.rs
@@ -177,7 +177,7 @@ symbols! {
DecorateLint,
Default,
Deref,
- DiagnosticHandler,
+ Diagnostic,
DiagnosticMessage,
DirBuilder,
Display,
diff --git a/compiler/rustc_trait_selection/src/errors.rs b/compiler/rustc_trait_selection/src/errors.rs
index f62bdb00ee0..b02ee593cbe 100644
--- a/compiler/rustc_trait_selection/src/errors.rs
+++ b/compiler/rustc_trait_selection/src/errors.rs
@@ -1,10 +1,10 @@
use rustc_errors::{fluent, IntoDiagnostic, ErrorGuaranteed, Handler};
-use rustc_macros::DiagnosticHandler;
+use rustc_macros::Diagnostic;
use rustc_middle::ty::{PolyTraitRef, Ty, Unevaluated};
use rustc_session::Limit;
use rustc_span::{Span, Symbol};
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(trait_selection::dump_vtable_entries)]
pub struct DumpVTableEntries<'a> {
#[primary_span]
@@ -13,7 +13,7 @@ pub struct DumpVTableEntries<'a> {
pub entries: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(trait_selection::unable_to_construct_constant_value)]
pub struct UnableToConstructConstantValue<'a> {
#[primary_span]
@@ -21,7 +21,7 @@ pub struct UnableToConstructConstantValue<'a> {
pub unevaluated: Unevaluated<'a>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[help]
#[diag(trait_selection::auto_deref_reached_recursion_limit, code = "E0055")]
pub struct AutoDerefReachedRecursionLimit<'a> {
@@ -33,7 +33,7 @@ pub struct AutoDerefReachedRecursionLimit<'a> {
pub crate_name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(trait_selection::empty_on_clause_in_rustc_on_unimplemented, code = "E0232")]
pub struct EmptyOnClauseInOnUnimplemented {
#[primary_span]
@@ -41,7 +41,7 @@ pub struct EmptyOnClauseInOnUnimplemented {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(trait_selection::invalid_on_clause_in_rustc_on_unimplemented, code = "E0232")]
pub struct InvalidOnClauseInOnUnimplemented {
#[primary_span]
@@ -49,7 +49,7 @@ pub struct InvalidOnClauseInOnUnimplemented {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(trait_selection::no_value_in_rustc_on_unimplemented, code = "E0232")]
#[note]
pub struct NoValueInOnUnimplemented {
diff --git a/compiler/rustc_ty_utils/src/errors.rs b/compiler/rustc_ty_utils/src/errors.rs
index 995e87bcd3b..85165187310 100644
--- a/compiler/rustc_ty_utils/src/errors.rs
+++ b/compiler/rustc_ty_utils/src/errors.rs
@@ -1,16 +1,16 @@
//! Errors emitted by ty_utils
-use rustc_macros::{DiagnosticHandler, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, SessionSubdiagnostic};
use rustc_middle::ty::Ty;
use rustc_span::Span;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(ty_utils::needs_drop_overflow)]
pub struct NeedsDropOverflow<'tcx> {
pub query_ty: Ty<'tcx>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(ty_utils::generic_constant_too_complex)]
#[help]
pub struct GenericConstantTooComplex {
diff --git a/compiler/rustc_typeck/src/check/expr.rs b/compiler/rustc_typeck/src/check/expr.rs
index 11661b8ef6c..23fadff3248 100644
--- a/compiler/rustc_typeck/src/check/expr.rs
+++ b/compiler/rustc_typeck/src/check/expr.rs
@@ -881,7 +881,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
return;
}
- // FIXME: Make this use DiagnosticHandler once error codes can be dynamically set.
+ // FIXME: Make this use Diagnostic once error codes can be dynamically set.
let mut err = self.tcx.sess.struct_span_err_with_code(
op_span,
"invalid left-hand side of assignment",
diff --git a/compiler/rustc_typeck/src/errors.rs b/compiler/rustc_typeck/src/errors.rs
index 50d400e2921..6f00591d54e 100644
--- a/compiler/rustc_typeck/src/errors.rs
+++ b/compiler/rustc_typeck/src/errors.rs
@@ -1,11 +1,11 @@
//! Errors emitted by typeck.
use rustc_errors::IntoDiagnostic;
use rustc_errors::{error_code, Applicability, DiagnosticBuilder, ErrorGuaranteed, Handler};
-use rustc_macros::{DiagnosticHandler, LintDiagnostic, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, LintDiagnostic, SessionSubdiagnostic};
use rustc_middle::ty::Ty;
use rustc_span::{symbol::Ident, Span, Symbol};
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::field_multiply_specified_in_initializer, code = "E0062")]
pub struct FieldMultiplySpecifiedInInitializer {
#[primary_span]
@@ -16,7 +16,7 @@ pub struct FieldMultiplySpecifiedInInitializer {
pub ident: Ident,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::unrecognized_atomic_operation, code = "E0092")]
pub struct UnrecognizedAtomicOperation<'a> {
#[primary_span]
@@ -25,7 +25,7 @@ pub struct UnrecognizedAtomicOperation<'a> {
pub op: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::wrong_number_of_generic_arguments_to_intrinsic, code = "E0094")]
pub struct WrongNumberOfGenericArgumentsToIntrinsic<'a> {
#[primary_span]
@@ -36,7 +36,7 @@ pub struct WrongNumberOfGenericArgumentsToIntrinsic<'a> {
pub descr: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::unrecognized_intrinsic_function, code = "E0093")]
pub struct UnrecognizedIntrinsicFunction {
#[primary_span]
@@ -45,7 +45,7 @@ pub struct UnrecognizedIntrinsicFunction {
pub name: Symbol,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::lifetimes_or_bounds_mismatch_on_trait, code = "E0195")]
pub struct LifetimesOrBoundsMismatchOnTrait {
#[primary_span]
@@ -57,7 +57,7 @@ pub struct LifetimesOrBoundsMismatchOnTrait {
pub ident: Ident,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::drop_impl_on_wrong_item, code = "E0120")]
pub struct DropImplOnWrongItem {
#[primary_span]
@@ -65,7 +65,7 @@ pub struct DropImplOnWrongItem {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::field_already_declared, code = "E0124")]
pub struct FieldAlreadyDeclared {
pub field_name: Ident,
@@ -76,7 +76,7 @@ pub struct FieldAlreadyDeclared {
pub prev_span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::copy_impl_on_type_with_dtor, code = "E0184")]
pub struct CopyImplOnTypeWithDtor {
#[primary_span]
@@ -84,14 +84,14 @@ pub struct CopyImplOnTypeWithDtor {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::multiple_relaxed_default_bounds, code = "E0203")]
pub struct MultipleRelaxedDefaultBounds {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::copy_impl_on_non_adt, code = "E0206")]
pub struct CopyImplOnNonAdt {
#[primary_span]
@@ -99,7 +99,7 @@ pub struct CopyImplOnNonAdt {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::trait_object_declared_with_no_traits, code = "E0224")]
pub struct TraitObjectDeclaredWithNoTraits {
#[primary_span]
@@ -108,14 +108,14 @@ pub struct TraitObjectDeclaredWithNoTraits {
pub trait_alias_span: Option<Span>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0227")]
pub struct AmbiguousLifetimeBound {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::assoc_type_binding_not_allowed, code = "E0229")]
pub struct AssocTypeBindingNotAllowed {
#[primary_span]
@@ -123,14 +123,14 @@ pub struct AssocTypeBindingNotAllowed {
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::functional_record_update_on_non_struct, code = "E0436")]
pub struct FunctionalRecordUpdateOnNonStruct {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::typeof_reserved_keyword_used, code = "E0516")]
pub struct TypeofReservedKeywordUsed<'tcx> {
pub ty: Ty<'tcx>,
@@ -141,7 +141,7 @@ pub struct TypeofReservedKeywordUsed<'tcx> {
pub opt_sugg: Option<(Span, Applicability)>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::return_stmt_outside_of_fn_body, code = "E0572")]
pub struct ReturnStmtOutsideOfFnBody {
#[primary_span]
@@ -152,14 +152,14 @@ pub struct ReturnStmtOutsideOfFnBody {
pub encl_fn_span: Option<Span>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::yield_expr_outside_of_generator, code = "E0627")]
pub struct YieldExprOutsideOfGenerator {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::struct_expr_non_exhaustive, code = "E0639")]
pub struct StructExprNonExhaustive {
#[primary_span]
@@ -167,14 +167,14 @@ pub struct StructExprNonExhaustive {
pub what: &'static str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::method_call_on_unknown_type, code = "E0699")]
pub struct MethodCallOnUnknownType {
#[primary_span]
pub span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::value_of_associated_struct_already_specified, code = "E0719")]
pub struct ValueOfAssociatedStructAlreadySpecified {
#[primary_span]
@@ -186,7 +186,7 @@ pub struct ValueOfAssociatedStructAlreadySpecified {
pub def_path: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::address_of_temporary_taken, code = "E0745")]
pub struct AddressOfTemporaryTaken {
#[primary_span]
@@ -232,7 +232,7 @@ pub enum ExpectedReturnTypeLabel<'tcx> {
},
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::unconstrained_opaque_type)]
#[note]
pub struct UnconstrainedOpaqueType {
@@ -249,7 +249,7 @@ pub struct MissingTypeParams {
pub empty_generic_args: bool,
}
-// Manual implementation of `DiagnosticHandler` to be able to call `span_to_snippet`.
+// Manual implementation of `IntoDiagnostic` to be able to call `span_to_snippet`.
impl<'a> IntoDiagnostic<'a> for MissingTypeParams {
fn into_diagnostic(self, handler: &'a Handler) -> DiagnosticBuilder<'a, ErrorGuaranteed> {
let mut err = handler.struct_span_err_with_code(
@@ -306,7 +306,7 @@ impl<'a> IntoDiagnostic<'a> for MissingTypeParams {
}
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::manual_implementation, code = "E0183")]
#[help]
pub struct ManualImplementation {
@@ -316,7 +316,7 @@ pub struct ManualImplementation {
pub trait_name: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::substs_on_overridden_impl)]
pub struct SubstsOnOverriddenImpl {
#[primary_span]
@@ -339,7 +339,7 @@ pub struct ExternCrateNotIdiomatic {
pub suggestion_code: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::expected_used_symbol)]
pub struct ExpectedUsedSymbol {
#[primary_span]
diff --git a/src/test/ui-fulldeps/internal-lints/diagnostics.rs b/src/test/ui-fulldeps/internal-lints/diagnostics.rs
index e95ab048db3..93766de9a91 100644
--- a/src/test/ui-fulldeps/internal-lints/diagnostics.rs
+++ b/src/test/ui-fulldeps/internal-lints/diagnostics.rs
@@ -15,10 +15,10 @@ use rustc_errors::{
AddToDiagnostic, IntoDiagnostic, Diagnostic, DiagnosticBuilder,
ErrorGuaranteed, Handler, fluent
};
-use rustc_macros::{DiagnosticHandler, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, SessionSubdiagnostic};
use rustc_span::Span;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(parser::expect_path)]
struct DeriveSessionDiagnostic {
#[primary_span]
diff --git a/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.rs b/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.rs
index 32ba5be8963..fd8128c31f8 100644
--- a/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.rs
+++ b/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.rs
@@ -1,10 +1,10 @@
// check-fail
-// Tests error conditions for specifying diagnostics using #[derive(DiagnosticHandler)]
+// Tests error conditions for specifying diagnostics using #[derive(Diagnostic)]
// normalize-stderr-test "the following other types implement trait `IntoDiagnosticArg`:(?:.*\n){0,9}\s+and \d+ others" -> "normalized in stderr"
// normalize-stderr-test "diagnostic_builder\.rs:[0-9]+:[0-9]+" -> "diagnostic_builder.rs:LL:CC"
// The proc_macro2 crate handles spans differently when on beta/stable release rather than nightly,
-// changing the output of this test. Since DiagnosticHandler is strictly internal to the compiler
+// changing the output of this test. Since Diagnostic is strictly internal to the compiler
// the test is just ignored on stable and beta:
// ignore-beta
// ignore-stable
@@ -17,7 +17,7 @@ use rustc_span::symbol::Ident;
use rustc_span::Span;
extern crate rustc_macros;
-use rustc_macros::{DiagnosticHandler, LintDiagnostic, SessionSubdiagnostic};
+use rustc_macros::{Diagnostic, LintDiagnostic, SessionSubdiagnostic};
extern crate rustc_middle;
use rustc_middle::ty::Ty;
@@ -27,70 +27,70 @@ use rustc_errors::{Applicability, MultiSpan};
extern crate rustc_session;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct Hello {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct HelloWarn {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
-//~^ ERROR `#[derive(DiagnosticHandler)]` can only be used on structs
-enum DiagnosticHandlerOnEnum {
+//~^ ERROR `#[derive(Diagnostic)]` can only be used on structs
+enum DiagnosticOnEnum {
Foo,
Bar,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
#[diag = "E0123"]
//~^ ERROR `#[diag = ...]` is not a valid attribute
struct WrongStructAttrStyle {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[nonsense(typeck::ambiguous_lifetime_bound, code = "E0123")]
//~^ ERROR `#[nonsense(...)]` is not a valid attribute
//~^^ ERROR diagnostic slug not specified
//~^^^ ERROR cannot find attribute `nonsense` in this scope
struct InvalidStructAttr {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag("E0123")]
//~^ ERROR `#[diag("...")]` is not a valid attribute
//~^^ ERROR diagnostic slug not specified
struct InvalidLitNestedAttr {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(nonsense, code = "E0123")]
//~^ ERROR cannot find value `nonsense` in module `rustc_errors::fluent`
struct InvalidNestedStructAttr {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(nonsense("foo"), code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(nonsense(...))]` is not a valid attribute
//~^^ ERROR diagnostic slug not specified
struct InvalidNestedStructAttr1 {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(nonsense = "...", code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(nonsense = ...)]` is not a valid attribute
//~^^ ERROR diagnostic slug not specified
struct InvalidNestedStructAttr2 {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(nonsense = 4, code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(nonsense = ...)]` is not a valid attribute
//~^^ ERROR diagnostic slug not specified
struct InvalidNestedStructAttr3 {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(slug = ...)]` is not a valid attribute
struct InvalidNestedStructAttr4 {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct WrongPlaceField {
#[suggestion = "bar"]
@@ -98,36 +98,36 @@ struct WrongPlaceField {
sp: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0456")]
//~^ ERROR specified multiple times
//~^^ ERROR specified multiple times
struct DiagSpecifiedTwice {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0456", code = "E0457")]
//~^ ERROR specified multiple times
struct CodeSpecifiedTwice {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, typeck::ambiguous_lifetime_bound, code = "E0456")]
//~^ ERROR `#[diag(typeck::ambiguous_lifetime_bound)]` is not a valid attribute
struct SlugSpecifiedTwice {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
struct KindNotProvided {} //~ ERROR diagnostic slug not specified
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(code = "E0456")]
//~^ ERROR diagnostic slug not specified
struct SlugNotProvided {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound)]
struct CodeNotProvided {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct MessageWrongType {
#[primary_span]
@@ -135,7 +135,7 @@ struct MessageWrongType {
foo: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct InvalidPathFieldAttr {
#[nonsense]
@@ -144,7 +144,7 @@ struct InvalidPathFieldAttr {
foo: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithField {
name: String,
@@ -152,7 +152,7 @@ struct ErrorWithField {
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithMessageAppliedToField {
#[label(typeck::label)]
@@ -160,7 +160,7 @@ struct ErrorWithMessageAppliedToField {
name: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithNonexistentField {
#[suggestion(typeck::suggestion, code = "{name}")]
@@ -168,7 +168,7 @@ struct ErrorWithNonexistentField {
suggestion: (Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
//~^ ERROR invalid format string: expected `'}'`
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorMissingClosingBrace {
@@ -178,7 +178,7 @@ struct ErrorMissingClosingBrace {
val: usize,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
//~^ ERROR invalid format string: unmatched `}`
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorMissingOpeningBrace {
@@ -188,14 +188,14 @@ struct ErrorMissingOpeningBrace {
val: usize,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct LabelOnSpan {
#[label(typeck::label)]
sp: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct LabelOnNonSpan {
#[label(typeck::label)]
@@ -203,7 +203,7 @@ struct LabelOnNonSpan {
id: u32,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct Suggest {
#[suggestion(typeck::suggestion, code = "This is the suggested code")]
@@ -213,14 +213,14 @@ struct Suggest {
suggestion: (Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithoutCode {
#[suggestion(typeck::suggestion)]
suggestion: (Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithBadKey {
#[suggestion(nonsense = "bar")]
@@ -228,7 +228,7 @@ struct SuggestWithBadKey {
suggestion: (Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithShorthandMsg {
#[suggestion(msg = "bar")]
@@ -236,21 +236,21 @@ struct SuggestWithShorthandMsg {
suggestion: (Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithoutMsg {
#[suggestion(code = "bar")]
suggestion: (Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithTypesSwapped {
#[suggestion(typeck::suggestion, code = "This is suggested code")]
suggestion: (Applicability, Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithWrongTypeApplicabilityOnly {
#[suggestion(typeck::suggestion, code = "This is suggested code")]
@@ -258,14 +258,14 @@ struct SuggestWithWrongTypeApplicabilityOnly {
suggestion: Applicability,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithSpanOnly {
#[suggestion(typeck::suggestion, code = "This is suggested code")]
suggestion: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithDuplicateSpanAndApplicability {
#[suggestion(typeck::suggestion, code = "This is suggested code")]
@@ -273,7 +273,7 @@ struct SuggestWithDuplicateSpanAndApplicability {
suggestion: (Span, Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct SuggestWithDuplicateApplicabilityAndSpan {
#[suggestion(typeck::suggestion, code = "This is suggested code")]
@@ -281,7 +281,7 @@ struct SuggestWithDuplicateApplicabilityAndSpan {
suggestion: (Applicability, Applicability, Span),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct WrongKindOfAnnotation {
#[label = "bar"]
@@ -289,7 +289,7 @@ struct WrongKindOfAnnotation {
z: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct OptionsInErrors {
#[label(typeck::label)]
@@ -298,7 +298,7 @@ struct OptionsInErrors {
opt_sugg: Option<(Span, Applicability)>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0456")]
struct MoveOutOfBorrowError<'tcx> {
name: Ident,
@@ -312,7 +312,7 @@ struct MoveOutOfBorrowError<'tcx> {
opt_sugg: Option<(Span, Applicability)>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithLifetime<'a> {
#[label(typeck::label)]
@@ -320,7 +320,7 @@ struct ErrorWithLifetime<'a> {
name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithDefaultLabelAttr<'a> {
#[label]
@@ -328,7 +328,7 @@ struct ErrorWithDefaultLabelAttr<'a> {
name: &'a str,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
//~^ ERROR the trait bound `Hello: IntoDiagnosticArg` is not satisfied
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ArgFieldWithoutSkip {
@@ -337,7 +337,7 @@ struct ArgFieldWithoutSkip {
other: Hello,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ArgFieldWithSkip {
#[primary_span]
@@ -348,91 +348,91 @@ struct ArgFieldWithSkip {
other: Hello,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithSpannedNote {
#[note]
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithSpannedNoteCustom {
#[note(typeck::note)]
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
#[note]
struct ErrorWithNote {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
#[note(typeck::note)]
struct ErrorWithNoteCustom {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithSpannedHelp {
#[help]
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithSpannedHelpCustom {
#[help(typeck::help)]
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
#[help]
struct ErrorWithHelp {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
#[help(typeck::help)]
struct ErrorWithHelpCustom {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[help]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithHelpWrongOrder {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[help(typeck::help)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithHelpCustomWrongOrder {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[note]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithNoteWrongOrder {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[note(typeck::note)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithNoteCustomWrongOrder {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ApplicabilityInBoth {
#[suggestion(typeck::suggestion, code = "...", applicability = "maybe-incorrect")]
@@ -440,7 +440,7 @@ struct ApplicabilityInBoth {
suggestion: (Span, Applicability),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct InvalidApplicability {
#[suggestion(typeck::suggestion, code = "...", applicability = "batman")]
@@ -448,14 +448,14 @@ struct InvalidApplicability {
suggestion: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ValidApplicability {
#[suggestion(typeck::suggestion, code = "...", applicability = "maybe-incorrect")]
suggestion: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct NoApplicability {
#[suggestion(typeck::suggestion, code = "...")]
@@ -466,14 +466,14 @@ struct NoApplicability {
#[note(parser::add_paren)]
struct Note;
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound)]
struct Subdiagnostic {
#[subdiagnostic]
note: Note,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct VecField {
#[primary_span]
@@ -481,7 +481,7 @@ struct VecField {
spans: Vec<Span>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct UnitField {
#[primary_span]
@@ -492,7 +492,7 @@ struct UnitField {
bar: (),
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct OptUnitField {
#[primary_span]
@@ -503,7 +503,7 @@ struct OptUnitField {
bar: Option<()>,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct LabelWithTrailingPath {
#[label(typeck::label, foo)]
@@ -511,7 +511,7 @@ struct LabelWithTrailingPath {
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct LabelWithTrailingNameValue {
#[label(typeck::label, foo = "...")]
@@ -519,7 +519,7 @@ struct LabelWithTrailingNameValue {
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct LabelWithTrailingList {
#[label(typeck::label, foo("..."))]
@@ -540,35 +540,35 @@ struct PrimarySpanOnLint {
span: Span,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
struct ErrorWithMultiSpan {
#[primary_span]
span: MultiSpan,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
#[warning]
struct ErrorWithWarn {
val: String,
}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[error(typeck::ambiguous_lifetime_bound, code = "E0123")]
//~^ ERROR `#[error(...)]` is not a valid attribute
//~| ERROR diagnostic slug not specified
//~| ERROR cannot find attribute `error` in this scope
struct ErrorAttribute {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[warn_(typeck::ambiguous_lifetime_bound, code = "E0123")]
//~^ ERROR `#[warn_(...)]` is not a valid attribute
//~| ERROR diagnostic slug not specified
//~| ERROR cannot find attribute `warn_` in this scope
struct WarnAttribute {}
-#[derive(DiagnosticHandler)]
+#[derive(Diagnostic)]
#[lint(typeck::ambiguous_lifetime_bound, code = "E0123")]
//~^ ERROR `#[lint(...)]` is not a valid attribute
//~| ERROR diagnostic slug not specified
diff --git a/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr b/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr
index d9198d4ef80..b07b35f2723 100644
--- a/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr
+++ b/src/test/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr
@@ -1,9 +1,9 @@
-error: `#[derive(DiagnosticHandler)]` can only be used on structs
+error: `#[derive(Diagnostic)]` can only be used on structs
--> $DIR/diagnostic-derive.rs:39:1
|
LL | / #[diag(typeck::ambiguous_lifetime_bound, code = "E0123")]
LL | |
-LL | | enum DiagnosticHandlerOnEnum {
+LL | | enum DiagnosticOnEnum {
LL | | Foo,
LL | | Bar,
LL | | }
@@ -214,22 +214,22 @@ LL | #[suggestion(typeck::suggestion, code = "{name}")]
error: invalid format string: expected `'}'` but string was terminated
--> $DIR/diagnostic-derive.rs:171:16
|
-LL | #[derive(DiagnosticHandler)]
+LL | #[derive(Diagnostic)]
| - ^ expected `'}'` in format string
| |
| because of this opening brace
|
= note: if you intended to print `{`, you can escape it using `{{`
- = note: this error originates in the derive macro `DiagnosticHandler` (in Nightly builds, run with -Z macro-backtrace for more info)
+ = note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
error: invalid format string: unmatched `}` found
--> $DIR/diagnostic-derive.rs:181:15
|
-LL | #[derive(DiagnosticHandler)]
+LL | #[derive(Diagnostic)]
| ^ unmatched `}` in format string
|
= note: if you intended to print `}`, you can escape it using `}}`
- = note: this error originates in the derive macro `DiagnosticHandler` (in Nightly builds, run with -Z macro-backtrace for more info)
+ = note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
error: the `#[label(...)]` attribute can only be applied to fields of type `Span` or `MultiSpan`
--> $DIR/diagnostic-derive.rs:201:5
@@ -448,7 +448,7 @@ LL | #[diag(nonsense, code = "E0123")]
error[E0277]: the trait bound `Hello: IntoDiagnosticArg` is not satisfied
--> $DIR/diagnostic-derive.rs:331:10
|
-LL | #[derive(DiagnosticHandler)]
+LL | #[derive(Diagnostic)]
| ^^^^^^^^^^^^^^^^^ the trait `IntoDiagnosticArg` is not implemented for `Hello`
|
= help: normalized in stderr
@@ -457,7 +457,7 @@ note: required by a bound in `DiagnosticBuilder::<'a, G>::set_arg`
|
LL | arg: impl IntoDiagnosticArg,
| ^^^^^^^^^^^^^^^^^ required by this bound in `DiagnosticBuilder::<'a, G>::set_arg`
- = note: this error originates in the derive macro `DiagnosticHandler` (in Nightly builds, run with -Z macro-backtrace for more info)
+ = note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 55 previous errors