38
38
/// The multi-argument form of this macro panics with a string and has the
39
39
/// [`format!`] syntax for building a string.
40
40
///
41
+ /// See also the macro [`compile_error!`], for raising errors during compilation.
42
+ ///
41
43
/// [runwrap]: ../std/result/enum.Result.html#method.unwrap
42
44
/// [`Option`]: ../std/option/enum.Option.html#method.unwrap
43
45
/// [`Result`]: ../std/result/enum.Result.html
44
46
/// [`format!`]: ../std/macro.format.html
47
+ /// [`compile_error!`]: ../std/macro.compile_error.html
45
48
/// [book]: ../book/second-edition/ch09-01-unrecoverable-errors-with-panic.html
46
49
///
47
50
/// # Current implementation
@@ -286,7 +289,8 @@ pub mod builtin {
286
289
/// Unconditionally causes compilation to fail with the given error message when encountered.
287
290
///
288
291
/// This macro should be used when a crate uses a conditional compilation strategy to provide
289
- /// better error messages for erroneous conditions.
292
+ /// better error messages for erroneous conditions. It's the compiler-level form of [`panic!`],
293
+ /// which emits an error at *runtime*, rather than during compilation.
290
294
///
291
295
/// # Examples
292
296
///
@@ -313,6 +317,8 @@ pub mod builtin {
313
317
/// #[cfg(not(any(feature = "foo", feature = "bar")))]
314
318
/// compile_error!("Either feature \"foo\" or \"bar\" must be enabled for this crate.")
315
319
/// ```
320
+ ///
321
+ /// [`panic!`]: ../std/macro.panic.html
316
322
#[ stable( feature = "compile_error_macro" , since = "1.20.0" ) ]
317
323
#[ macro_export]
318
324
macro_rules! compile_error {
0 commit comments