Macro core::compile_error
1.20.0 · source · macro_rules! compile_error { ($msg:expr $(,)?) => { ... }; }
Expand description
导致编译失败,并遇到给定的错误消息。
当 crate 使用条件编译策略为错误条件提供更好的错误消息时,应使用此宏。
它是 panic!
的编译器级别的形式,但在 编译 而不是 运行时 会发出错误。
Examples
宏和 #[cfg]
环境就是两个这样的示例。
如果宏传递了无效值,则发出更好的编译器错误。 没有最终分支,编译器仍然会发出错误,但是错误消息不会提及两个有效值。
ⓘ
macro_rules! give_me_foo_or_bar {
(foo) => {};
(bar) => {};
($x:ident) => {
compile_error!("This macro only accepts `foo` or `bar`");
}
}
give_me_foo_or_bar!(neither);
// ^ 将在编译时失败,并显示消息 "This macro only accepts `foo` or `bar`"
Run如果许多特性之一不可用,则发出编译器错误。