]> git.proxmox.com Git - rustc.git/blob - compiler/rustc_interface/src/errors.rs
New upstream version 1.69.0+dfsg1
[rustc.git] / compiler / rustc_interface / src / errors.rs
1 use rustc_macros::Diagnostic;
2 use rustc_session::config::CrateType;
3 use rustc_span::{Span, Symbol};
4 use rustc_target::spec::TargetTriple;
5
6 use std::io;
7 use std::path::Path;
8
9 #[derive(Diagnostic)]
10 #[diag(interface_ferris_identifier)]
11 pub struct FerrisIdentifier {
12 #[primary_span]
13 pub spans: Vec<Span>,
14 #[suggestion(code = "ferris", applicability = "maybe-incorrect")]
15 pub first_span: Span,
16 }
17
18 #[derive(Diagnostic)]
19 #[diag(interface_emoji_identifier)]
20 pub struct EmojiIdentifier {
21 #[primary_span]
22 pub spans: Vec<Span>,
23 pub ident: Symbol,
24 }
25
26 #[derive(Diagnostic)]
27 #[diag(interface_mixed_bin_crate)]
28 pub struct MixedBinCrate;
29
30 #[derive(Diagnostic)]
31 #[diag(interface_mixed_proc_macro_crate)]
32 pub struct MixedProcMacroCrate;
33
34 #[derive(Diagnostic)]
35 #[diag(interface_error_writing_dependencies)]
36 pub struct ErrorWritingDependencies<'a> {
37 pub path: &'a Path,
38 pub error: io::Error,
39 }
40
41 #[derive(Diagnostic)]
42 #[diag(interface_input_file_would_be_overwritten)]
43 pub struct InputFileWouldBeOverWritten<'a> {
44 pub path: &'a Path,
45 }
46
47 #[derive(Diagnostic)]
48 #[diag(interface_generated_file_conflicts_with_directory)]
49 pub struct GeneratedFileConflictsWithDirectory<'a> {
50 pub input_path: &'a Path,
51 pub dir_path: &'a Path,
52 }
53
54 #[derive(Diagnostic)]
55 #[diag(interface_temps_dir_error)]
56 pub struct TempsDirError;
57
58 #[derive(Diagnostic)]
59 #[diag(interface_out_dir_error)]
60 pub struct OutDirError;
61
62 #[derive(Diagnostic)]
63 #[diag(interface_cant_emit_mir)]
64 pub struct CantEmitMIR {
65 pub error: io::Error,
66 }
67
68 #[derive(Diagnostic)]
69 #[diag(interface_rustc_error_fatal)]
70 pub struct RustcErrorFatal {
71 #[primary_span]
72 pub span: Span,
73 }
74
75 #[derive(Diagnostic)]
76 #[diag(interface_rustc_error_unexpected_annotation)]
77 pub struct RustcErrorUnexpectedAnnotation {
78 #[primary_span]
79 pub span: Span,
80 }
81
82 #[derive(Diagnostic)]
83 #[diag(interface_failed_writing_file)]
84 pub struct FailedWritingFile<'a> {
85 pub path: &'a Path,
86 pub error: io::Error,
87 }
88
89 #[derive(Diagnostic)]
90 #[diag(interface_proc_macro_crate_panic_abort)]
91 pub struct ProcMacroCratePanicAbort;
92
93 #[derive(Diagnostic)]
94 #[diag(interface_unsupported_crate_type_for_target)]
95 pub struct UnsupportedCrateTypeForTarget<'a> {
96 pub crate_type: CrateType,
97 pub target_triple: &'a TargetTriple,
98 }
99
100 #[derive(Diagnostic)]
101 #[diag(interface_multiple_output_types_adaption)]
102 pub struct MultipleOutputTypesAdaption;
103
104 #[derive(Diagnostic)]
105 #[diag(interface_ignoring_extra_filename)]
106 pub struct IgnoringExtraFilename;
107
108 #[derive(Diagnostic)]
109 #[diag(interface_ignoring_out_dir)]
110 pub struct IgnoringOutDir;