1 use rustc_macros::{SessionDiagnostic, SessionSubdiagnostic};
2 use rustc_span::{Span, Symbol};
4 #[derive(SessionDiagnostic)]
5 #[error(privacy::field_is_private, code = "E0451")]
6 pub struct FieldIsPrivate {
9 pub field_name: Symbol,
10 pub variant_descr: &'static str,
11 pub def_path_str: String,
13 pub label: FieldIsPrivateLabel,
16 #[derive(SessionSubdiagnostic)]
17 pub enum FieldIsPrivateLabel {
18 #[label(privacy::field_is_private_is_update_syntax_label)]
24 #[label(privacy::field_is_private_label)]
31 #[derive(SessionDiagnostic)]
32 #[error(privacy::item_is_private)]
33 pub struct ItemIsPrivate<'a> {
41 #[derive(SessionDiagnostic)]
42 #[error(privacy::unnamed_item_is_private)]
43 pub struct UnnamedItemIsPrivate {
46 pub kind: &'static str,
49 // Duplicate of `InPublicInterface` but with a different error code, shares the same slug.
50 #[derive(SessionDiagnostic)]
51 #[error(privacy::in_public_interface, code = "E0445")]
52 pub struct InPublicInterfaceTraits<'a> {
56 pub vis_descr: &'static str,
59 #[label(privacy::visibility_label)]
63 // Duplicate of `InPublicInterfaceTraits` but with a different error code, shares the same slug.
64 #[derive(SessionDiagnostic)]
65 #[error(privacy::in_public_interface, code = "E0446")]
66 pub struct InPublicInterface<'a> {
70 pub vis_descr: &'static str,
73 #[label(privacy::visibility_label)]