]>
Commit | Line | Data |
---|---|---|
041b39d2 XL |
1 | // The compiler code necessary to support the compile_error! extension. |
2 | ||
74b04a01 | 3 | use rustc_ast::tokenstream::TokenStream; |
dfeec247 XL |
4 | use rustc_expand::base::{self, *}; |
5 | use rustc_span::Span; | |
041b39d2 | 6 | |
dfeec247 XL |
7 | pub fn expand_compile_error<'cx>( |
8 | cx: &'cx mut ExtCtxt<'_>, | |
9 | sp: Span, | |
10 | tts: TokenStream, | |
11 | ) -> Box<dyn base::MacResult + 'cx> { | |
5e7ed085 FG |
12 | let Some(var) = get_single_str_from_tts(cx, sp, tts, "compile_error!") else { |
13 | return DummyResult::any(sp); | |
041b39d2 XL |
14 | }; |
15 | ||
353b0b11 FG |
16 | #[expect( |
17 | rustc::diagnostic_outside_of_impl, | |
18 | reason = "diagnostic message is specified by user" | |
19 | )] | |
20 | #[expect(rustc::untranslatable_diagnostic, reason = "diagnostic message is specified by user")] | |
fe692bf9 | 21 | cx.span_err(sp, var.to_string()); |
041b39d2 XL |
22 | |
23 | DummyResult::any(sp) | |
24 | } |