]>
Commit | Line | Data |
---|---|---|
2b03887a FG |
1 | use rustc_errors::DiagnosticArgFromDisplay; |
2 | use rustc_macros::{Diagnostic, Subdiagnostic}; | |
f2b60f7d FG |
3 | use rustc_span::{symbol::Ident, Span, Symbol}; |
4 | ||
2b03887a FG |
5 | #[derive(Diagnostic, Clone, Copy)] |
6 | #[diag(ast_lowering_generic_type_with_parentheses, code = "E0214")] | |
f2b60f7d FG |
7 | pub struct GenericTypeWithParentheses { |
8 | #[primary_span] | |
9 | #[label] | |
10 | pub span: Span, | |
11 | #[subdiagnostic] | |
12 | pub sub: Option<UseAngleBrackets>, | |
13 | } | |
14 | ||
2b03887a FG |
15 | #[derive(Clone, Copy, Subdiagnostic)] |
16 | #[multipart_suggestion(ast_lowering_use_angle_brackets, applicability = "maybe-incorrect")] | |
f2b60f7d | 17 | pub struct UseAngleBrackets { |
2b03887a | 18 | #[suggestion_part(code = "<")] |
f2b60f7d | 19 | pub open_param: Span, |
2b03887a | 20 | #[suggestion_part(code = ">")] |
f2b60f7d FG |
21 | pub close_param: Span, |
22 | } | |
23 | ||
2b03887a FG |
24 | #[derive(Diagnostic)] |
25 | #[diag(ast_lowering_invalid_abi, code = "E0703")] | |
26 | #[note] | |
f2b60f7d FG |
27 | pub struct InvalidAbi { |
28 | #[primary_span] | |
29 | #[label] | |
30 | pub span: Span, | |
31 | pub abi: Symbol, | |
2b03887a FG |
32 | pub command: String, |
33 | #[subdiagnostic] | |
34 | pub suggestion: Option<InvalidAbiSuggestion>, | |
35 | } | |
36 | ||
37 | #[derive(Subdiagnostic)] | |
38 | #[suggestion( | |
39 | ast_lowering_invalid_abi_suggestion, | |
40 | code = "{suggestion}", | |
41 | applicability = "maybe-incorrect" | |
42 | )] | |
43 | pub struct InvalidAbiSuggestion { | |
44 | #[primary_span] | |
45 | pub span: Span, | |
46 | pub suggestion: String, | |
f2b60f7d FG |
47 | } |
48 | ||
2b03887a FG |
49 | #[derive(Diagnostic, Clone, Copy)] |
50 | #[diag(ast_lowering_assoc_ty_parentheses)] | |
f2b60f7d FG |
51 | pub struct AssocTyParentheses { |
52 | #[primary_span] | |
53 | pub span: Span, | |
54 | #[subdiagnostic] | |
55 | pub sub: AssocTyParenthesesSub, | |
56 | } | |
57 | ||
2b03887a | 58 | #[derive(Clone, Copy, Subdiagnostic)] |
f2b60f7d | 59 | pub enum AssocTyParenthesesSub { |
2b03887a FG |
60 | #[multipart_suggestion(ast_lowering_remove_parentheses)] |
61 | Empty { | |
62 | #[suggestion_part(code = "")] | |
63 | parentheses_span: Span, | |
64 | }, | |
65 | #[multipart_suggestion(ast_lowering_use_angle_brackets)] | |
66 | NotEmpty { | |
67 | #[suggestion_part(code = "<")] | |
68 | open_param: Span, | |
69 | #[suggestion_part(code = ">")] | |
70 | close_param: Span, | |
71 | }, | |
72 | } | |
73 | ||
74 | #[derive(Diagnostic)] | |
75 | #[diag(ast_lowering_misplaced_impl_trait, code = "E0562")] | |
f2b60f7d FG |
76 | pub struct MisplacedImplTrait<'a> { |
77 | #[primary_span] | |
78 | pub span: Span, | |
79 | pub position: DiagnosticArgFromDisplay<'a>, | |
80 | } | |
81 | ||
2b03887a FG |
82 | #[derive(Diagnostic, Clone, Copy)] |
83 | #[diag(ast_lowering_rustc_box_attribute_error)] | |
f2b60f7d FG |
84 | pub struct RustcBoxAttributeError { |
85 | #[primary_span] | |
86 | pub span: Span, | |
87 | } | |
88 | ||
2b03887a FG |
89 | #[derive(Diagnostic, Clone, Copy)] |
90 | #[diag(ast_lowering_underscore_expr_lhs_assign)] | |
f2b60f7d FG |
91 | pub struct UnderscoreExprLhsAssign { |
92 | #[primary_span] | |
93 | #[label] | |
94 | pub span: Span, | |
95 | } | |
96 | ||
2b03887a FG |
97 | #[derive(Diagnostic, Clone, Copy)] |
98 | #[diag(ast_lowering_base_expression_double_dot)] | |
f2b60f7d FG |
99 | pub struct BaseExpressionDoubleDot { |
100 | #[primary_span] | |
101 | #[label] | |
102 | pub span: Span, | |
103 | } | |
104 | ||
2b03887a FG |
105 | #[derive(Diagnostic, Clone, Copy)] |
106 | #[diag(ast_lowering_await_only_in_async_fn_and_blocks, code = "E0728")] | |
f2b60f7d FG |
107 | pub struct AwaitOnlyInAsyncFnAndBlocks { |
108 | #[primary_span] | |
109 | #[label] | |
110 | pub dot_await_span: Span, | |
2b03887a | 111 | #[label(ast_lowering_this_not_async)] |
f2b60f7d FG |
112 | pub item_span: Option<Span>, |
113 | } | |
114 | ||
2b03887a FG |
115 | #[derive(Diagnostic, Clone, Copy)] |
116 | #[diag(ast_lowering_generator_too_many_parameters, code = "E0628")] | |
f2b60f7d FG |
117 | pub struct GeneratorTooManyParameters { |
118 | #[primary_span] | |
119 | pub fn_decl_span: Span, | |
120 | } | |
121 | ||
2b03887a FG |
122 | #[derive(Diagnostic, Clone, Copy)] |
123 | #[diag(ast_lowering_closure_cannot_be_static, code = "E0697")] | |
f2b60f7d FG |
124 | pub struct ClosureCannotBeStatic { |
125 | #[primary_span] | |
126 | pub fn_decl_span: Span, | |
127 | } | |
128 | ||
2b03887a | 129 | #[derive(Diagnostic, Clone, Copy)] |
f2b60f7d | 130 | #[help] |
2b03887a | 131 | #[diag(ast_lowering_async_non_move_closure_not_supported, code = "E0708")] |
f2b60f7d FG |
132 | pub struct AsyncNonMoveClosureNotSupported { |
133 | #[primary_span] | |
134 | pub fn_decl_span: Span, | |
135 | } | |
136 | ||
2b03887a FG |
137 | #[derive(Diagnostic, Clone, Copy)] |
138 | #[diag(ast_lowering_functional_record_update_destructuring_assignment)] | |
f2b60f7d FG |
139 | pub struct FunctionalRecordUpdateDestructuringAssignemnt { |
140 | #[primary_span] | |
141 | #[suggestion(code = "", applicability = "machine-applicable")] | |
142 | pub span: Span, | |
143 | } | |
144 | ||
2b03887a FG |
145 | #[derive(Diagnostic, Clone, Copy)] |
146 | #[diag(ast_lowering_async_generators_not_supported, code = "E0727")] | |
f2b60f7d FG |
147 | pub struct AsyncGeneratorsNotSupported { |
148 | #[primary_span] | |
149 | pub span: Span, | |
150 | } | |
151 | ||
2b03887a FG |
152 | #[derive(Diagnostic, Clone, Copy)] |
153 | #[diag(ast_lowering_inline_asm_unsupported_target, code = "E0472")] | |
f2b60f7d FG |
154 | pub struct InlineAsmUnsupportedTarget { |
155 | #[primary_span] | |
156 | pub span: Span, | |
157 | } | |
158 | ||
2b03887a FG |
159 | #[derive(Diagnostic, Clone, Copy)] |
160 | #[diag(ast_lowering_att_syntax_only_x86)] | |
f2b60f7d FG |
161 | pub struct AttSyntaxOnlyX86 { |
162 | #[primary_span] | |
163 | pub span: Span, | |
164 | } | |
165 | ||
2b03887a FG |
166 | #[derive(Diagnostic, Clone, Copy)] |
167 | #[diag(ast_lowering_abi_specified_multiple_times)] | |
f2b60f7d FG |
168 | pub struct AbiSpecifiedMultipleTimes { |
169 | #[primary_span] | |
170 | pub abi_span: Span, | |
171 | pub prev_name: Symbol, | |
172 | #[label] | |
173 | pub prev_span: Span, | |
174 | #[note] | |
175 | pub equivalent: Option<()>, | |
176 | } | |
177 | ||
2b03887a FG |
178 | #[derive(Diagnostic, Clone, Copy)] |
179 | #[diag(ast_lowering_clobber_abi_not_supported)] | |
f2b60f7d FG |
180 | pub struct ClobberAbiNotSupported { |
181 | #[primary_span] | |
182 | pub abi_span: Span, | |
183 | } | |
184 | ||
2b03887a | 185 | #[derive(Diagnostic)] |
f2b60f7d | 186 | #[note] |
2b03887a | 187 | #[diag(ast_lowering_invalid_abi_clobber_abi)] |
f2b60f7d FG |
188 | pub struct InvalidAbiClobberAbi { |
189 | #[primary_span] | |
190 | pub abi_span: Span, | |
191 | pub supported_abis: String, | |
192 | } | |
193 | ||
2b03887a FG |
194 | #[derive(Diagnostic, Clone, Copy)] |
195 | #[diag(ast_lowering_invalid_register)] | |
f2b60f7d FG |
196 | pub struct InvalidRegister<'a> { |
197 | #[primary_span] | |
198 | pub op_span: Span, | |
199 | pub reg: Symbol, | |
200 | pub error: &'a str, | |
201 | } | |
202 | ||
2b03887a FG |
203 | #[derive(Diagnostic, Clone, Copy)] |
204 | #[diag(ast_lowering_invalid_register_class)] | |
f2b60f7d FG |
205 | pub struct InvalidRegisterClass<'a> { |
206 | #[primary_span] | |
207 | pub op_span: Span, | |
208 | pub reg_class: Symbol, | |
209 | pub error: &'a str, | |
210 | } | |
211 | ||
2b03887a FG |
212 | #[derive(Diagnostic)] |
213 | #[diag(ast_lowering_invalid_asm_template_modifier_reg_class)] | |
f2b60f7d FG |
214 | pub struct InvalidAsmTemplateModifierRegClass { |
215 | #[primary_span] | |
2b03887a | 216 | #[label(ast_lowering_template_modifier)] |
f2b60f7d | 217 | pub placeholder_span: Span, |
2b03887a | 218 | #[label(ast_lowering_argument)] |
f2b60f7d FG |
219 | pub op_span: Span, |
220 | #[subdiagnostic] | |
221 | pub sub: InvalidAsmTemplateModifierRegClassSub, | |
222 | } | |
223 | ||
2b03887a | 224 | #[derive(Subdiagnostic)] |
f2b60f7d | 225 | pub enum InvalidAsmTemplateModifierRegClassSub { |
2b03887a | 226 | #[note(ast_lowering_support_modifiers)] |
f2b60f7d | 227 | SupportModifier { class_name: Symbol, modifiers: String }, |
2b03887a | 228 | #[note(ast_lowering_does_not_support_modifiers)] |
f2b60f7d FG |
229 | DoesNotSupportModifier { class_name: Symbol }, |
230 | } | |
231 | ||
2b03887a FG |
232 | #[derive(Diagnostic, Clone, Copy)] |
233 | #[diag(ast_lowering_invalid_asm_template_modifier_const)] | |
f2b60f7d FG |
234 | pub struct InvalidAsmTemplateModifierConst { |
235 | #[primary_span] | |
2b03887a | 236 | #[label(ast_lowering_template_modifier)] |
f2b60f7d | 237 | pub placeholder_span: Span, |
2b03887a | 238 | #[label(ast_lowering_argument)] |
f2b60f7d FG |
239 | pub op_span: Span, |
240 | } | |
241 | ||
2b03887a FG |
242 | #[derive(Diagnostic, Clone, Copy)] |
243 | #[diag(ast_lowering_invalid_asm_template_modifier_sym)] | |
f2b60f7d FG |
244 | pub struct InvalidAsmTemplateModifierSym { |
245 | #[primary_span] | |
2b03887a | 246 | #[label(ast_lowering_template_modifier)] |
f2b60f7d | 247 | pub placeholder_span: Span, |
2b03887a | 248 | #[label(ast_lowering_argument)] |
f2b60f7d FG |
249 | pub op_span: Span, |
250 | } | |
251 | ||
2b03887a FG |
252 | #[derive(Diagnostic, Clone, Copy)] |
253 | #[diag(ast_lowering_register_class_only_clobber)] | |
f2b60f7d FG |
254 | pub struct RegisterClassOnlyClobber { |
255 | #[primary_span] | |
256 | pub op_span: Span, | |
257 | pub reg_class_name: Symbol, | |
258 | } | |
259 | ||
2b03887a FG |
260 | #[derive(Diagnostic, Clone, Copy)] |
261 | #[diag(ast_lowering_register_conflict)] | |
f2b60f7d FG |
262 | pub struct RegisterConflict<'a> { |
263 | #[primary_span] | |
2b03887a | 264 | #[label(ast_lowering_register1)] |
f2b60f7d | 265 | pub op_span1: Span, |
2b03887a | 266 | #[label(ast_lowering_register2)] |
f2b60f7d FG |
267 | pub op_span2: Span, |
268 | pub reg1_name: &'a str, | |
269 | pub reg2_name: &'a str, | |
270 | #[help] | |
271 | pub in_out: Option<Span>, | |
272 | } | |
273 | ||
2b03887a | 274 | #[derive(Diagnostic, Clone, Copy)] |
f2b60f7d | 275 | #[help] |
2b03887a | 276 | #[diag(ast_lowering_sub_tuple_binding)] |
f2b60f7d FG |
277 | pub struct SubTupleBinding<'a> { |
278 | #[primary_span] | |
279 | #[label] | |
487cf647 | 280 | #[suggestion( |
2b03887a | 281 | ast_lowering_sub_tuple_binding_suggestion, |
487cf647 | 282 | style = "verbose", |
f2b60f7d FG |
283 | code = "..", |
284 | applicability = "maybe-incorrect" | |
285 | )] | |
286 | pub span: Span, | |
287 | pub ident: Ident, | |
288 | pub ident_name: Symbol, | |
289 | pub ctx: &'a str, | |
290 | } | |
291 | ||
2b03887a FG |
292 | #[derive(Diagnostic, Clone, Copy)] |
293 | #[diag(ast_lowering_extra_double_dot)] | |
f2b60f7d FG |
294 | pub struct ExtraDoubleDot<'a> { |
295 | #[primary_span] | |
296 | #[label] | |
297 | pub span: Span, | |
2b03887a | 298 | #[label(ast_lowering_previously_used_here)] |
f2b60f7d FG |
299 | pub prev_span: Span, |
300 | pub ctx: &'a str, | |
301 | } | |
302 | ||
2b03887a | 303 | #[derive(Diagnostic, Clone, Copy)] |
f2b60f7d | 304 | #[note] |
2b03887a | 305 | #[diag(ast_lowering_misplaced_double_dot)] |
f2b60f7d FG |
306 | pub struct MisplacedDoubleDot { |
307 | #[primary_span] | |
308 | pub span: Span, | |
309 | } | |
310 | ||
2b03887a FG |
311 | #[derive(Diagnostic, Clone, Copy)] |
312 | #[diag(ast_lowering_misplaced_relax_trait_bound)] | |
f2b60f7d FG |
313 | pub struct MisplacedRelaxTraitBound { |
314 | #[primary_span] | |
315 | pub span: Span, | |
316 | } | |
317 | ||
2b03887a FG |
318 | #[derive(Diagnostic, Clone, Copy)] |
319 | #[diag(ast_lowering_not_supported_for_lifetime_binder_async_closure)] | |
f2b60f7d FG |
320 | pub struct NotSupportedForLifetimeBinderAsyncClosure { |
321 | #[primary_span] | |
322 | pub span: Span, | |
323 | } | |
324 | ||
2b03887a FG |
325 | #[derive(Diagnostic, Clone, Copy)] |
326 | #[diag(ast_lowering_arbitrary_expression_in_pattern)] | |
f2b60f7d FG |
327 | pub struct ArbitraryExpressionInPattern { |
328 | #[primary_span] | |
329 | pub span: Span, | |
330 | } | |
331 | ||
2b03887a FG |
332 | #[derive(Diagnostic, Clone, Copy)] |
333 | #[diag(ast_lowering_inclusive_range_with_no_end)] | |
f2b60f7d FG |
334 | pub struct InclusiveRangeWithNoEnd { |
335 | #[primary_span] | |
336 | pub span: Span, | |
337 | } | |
338 | ||
2b03887a FG |
339 | #[derive(Diagnostic, Clone, Copy)] |
340 | #[diag(ast_lowering_trait_fn_async, code = "E0706")] | |
f2b60f7d | 341 | #[note] |
2b03887a | 342 | #[note(note2)] |
f2b60f7d FG |
343 | pub struct TraitFnAsync { |
344 | #[primary_span] | |
345 | pub fn_span: Span, | |
346 | #[label] | |
347 | pub span: Span, | |
348 | } |