]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_interface/src/errors.rs
Rollup merge of #107201 - compiler-errors:confusing-async-fn-note, r=estebank
[rust.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_proc_macro_doc_without_arg)]
36 pub struct ProcMacroDocWithoutArg;
37
38 #[derive(Diagnostic)]
39 #[diag(interface_error_writing_dependencies)]
40 pub struct ErrorWritingDependencies<'a> {
41     pub path: &'a Path,
42     pub error: io::Error,
43 }
44
45 #[derive(Diagnostic)]
46 #[diag(interface_input_file_would_be_overwritten)]
47 pub struct InputFileWouldBeOverWritten<'a> {
48     pub path: &'a Path,
49 }
50
51 #[derive(Diagnostic)]
52 #[diag(interface_generated_file_conflicts_with_directory)]
53 pub struct GeneratedFileConflictsWithDirectory<'a> {
54     pub input_path: &'a Path,
55     pub dir_path: &'a Path,
56 }
57
58 #[derive(Diagnostic)]
59 #[diag(interface_temps_dir_error)]
60 pub struct TempsDirError;
61
62 #[derive(Diagnostic)]
63 #[diag(interface_out_dir_error)]
64 pub struct OutDirError;
65
66 #[derive(Diagnostic)]
67 #[diag(interface_cant_emit_mir)]
68 pub struct CantEmitMIR {
69     pub error: io::Error,
70 }
71
72 #[derive(Diagnostic)]
73 #[diag(interface_rustc_error_fatal)]
74 pub struct RustcErrorFatal {
75     #[primary_span]
76     pub span: Span,
77 }
78
79 #[derive(Diagnostic)]
80 #[diag(interface_rustc_error_unexpected_annotation)]
81 pub struct RustcErrorUnexpectedAnnotation {
82     #[primary_span]
83     pub span: Span,
84 }
85
86 #[derive(Diagnostic)]
87 #[diag(interface_failed_writing_file)]
88 pub struct FailedWritingFile<'a> {
89     pub path: &'a Path,
90     pub error: io::Error,
91 }
92
93 #[derive(Diagnostic)]
94 #[diag(interface_proc_macro_crate_panic_abort)]
95 pub struct ProcMacroCratePanicAbort;
96
97 #[derive(Diagnostic)]
98 #[diag(interface_unsupported_crate_type_for_target)]
99 pub struct UnsupportedCrateTypeForTarget<'a> {
100     pub crate_type: CrateType,
101     pub target_triple: &'a TargetTriple,
102 }
103
104 #[derive(Diagnostic)]
105 #[diag(interface_multiple_output_types_adaption)]
106 pub struct MultipleOutputTypesAdaption;
107
108 #[derive(Diagnostic)]
109 #[diag(interface_ignoring_extra_filename)]
110 pub struct IgnoringExtraFilename;
111
112 #[derive(Diagnostic)]
113 #[diag(interface_ignoring_out_dir)]
114 pub struct IgnoringOutDir;