]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_privacy/src/errors.rs
privacy: port "item is private" diag
[rust.git] / compiler / rustc_privacy / src / errors.rs
1 use rustc_macros::{SessionDiagnostic, SessionSubdiagnostic};
2 use rustc_span::{Span, Symbol};
3
4 #[derive(SessionDiagnostic)]
5 #[error(privacy::field_is_private, code = "E0451")]
6 pub struct FieldIsPrivate {
7     #[primary_span]
8     pub span: Span,
9     pub field_name: Symbol,
10     pub variant_descr: &'static str,
11     pub def_path_str: String,
12     #[subdiagnostic]
13     pub label: FieldIsPrivateLabel,
14 }
15
16 #[derive(SessionSubdiagnostic)]
17 pub enum FieldIsPrivateLabel {
18     #[label(privacy::field_is_private_is_update_syntax_label)]
19     IsUpdateSyntax {
20         #[primary_span]
21         span: Span,
22         field_name: Symbol,
23     },
24     #[label(privacy::field_is_private_label)]
25     Other {
26         #[primary_span]
27         span: Span,
28     },
29 }
30
31 #[derive(SessionDiagnostic)]
32 #[error(privacy::item_is_private)]
33 pub struct ItemIsPrivate<'a> {
34     #[primary_span]
35     #[label]
36     pub span: Span,
37     pub kind: &'a str,
38     pub descr: String,
39 }