about summary refs log tree commit diff
path: root/src/librustc_builtin_macros/compile_error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/librustc_builtin_macros/compile_error.rs')
-rw-r--r--src/librustc_builtin_macros/compile_error.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/librustc_builtin_macros/compile_error.rs b/src/librustc_builtin_macros/compile_error.rs
new file mode 100644
index 00000000000..394259fc67b
--- /dev/null
+++ b/src/librustc_builtin_macros/compile_error.rs
@@ -0,0 +1,20 @@
+// The compiler code necessary to support the compile_error! extension.
+
+use syntax::tokenstream::TokenStream;
+use syntax_expand::base::{self, *};
+use syntax_pos::Span;
+
+pub fn expand_compile_error<'cx>(
+    cx: &'cx mut ExtCtxt<'_>,
+    sp: Span,
+    tts: TokenStream,
+) -> Box<dyn base::MacResult + 'cx> {
+    let var = match get_single_str_from_tts(cx, sp, tts, "compile_error!") {
+        None => return DummyResult::any(sp),
+        Some(v) => v,
+    };
+
+    cx.span_err(sp, &var);
+
+    DummyResult::any(sp)
+}