• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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;
111 
112 #[derive(Diagnostic)]
113 #[diag(interface_multiple_output_types_to_stdout)]
114 pub struct MultipleOutputTypesToStdout;
115