1 use rustc_errors::DiagnosticArgFromDisplay;
2 use rustc_macros::{Diagnostic, LintDiagnostic, Subdiagnostic};
3 use rustc_span::{Span, Symbol};
6 #[diag(privacy_field_is_private, code = "E0451")]
7 pub struct FieldIsPrivate {
10 pub field_name: Symbol,
11 pub variant_descr: &'static str,
12 pub def_path_str: String,
14 pub label: FieldIsPrivateLabel,
17 #[derive(Subdiagnostic)]
18 pub enum FieldIsPrivateLabel {
19 #[label(privacy_field_is_private_is_update_syntax_label)]
25 #[label(privacy_field_is_private_label)]
33 #[diag(privacy_item_is_private)]
34 pub struct ItemIsPrivate<'a> {
39 pub descr: DiagnosticArgFromDisplay<'a>,
43 #[diag(privacy_unnamed_item_is_private)]
44 pub struct UnnamedItemIsPrivate {
47 pub kind: &'static str,
50 // Duplicate of `InPublicInterface` but with a different error code, shares the same slug.
52 #[diag(privacy_in_public_interface, code = "E0445")]
53 pub struct InPublicInterfaceTraits<'a> {
57 pub vis_descr: &'static str,
59 pub descr: DiagnosticArgFromDisplay<'a>,
60 #[label(visibility_label)]
64 // Duplicate of `InPublicInterfaceTraits` but with a different error code, shares the same slug.
66 #[diag(privacy_in_public_interface, code = "E0446")]
67 pub struct InPublicInterface<'a> {
71 pub vis_descr: &'static str,
73 pub descr: DiagnosticArgFromDisplay<'a>,
74 #[label(visibility_label)]
79 #[diag(privacy_report_effective_visibility)]
80 pub struct ReportEffectiveVisibility {
86 #[derive(LintDiagnostic)]
87 #[diag(privacy_from_private_dep_in_public_interface)]
88 pub struct FromPrivateDependencyInPublicInterface<'a> {
90 pub descr: DiagnosticArgFromDisplay<'a>,
94 #[derive(LintDiagnostic)]
95 #[diag(privacy_private_in_public_lint)]
96 pub struct PrivateInPublicLint<'a> {
97 pub vis_descr: &'static str,
99 pub descr: DiagnosticArgFromDisplay<'a>,