我想在编译时发出警告,可能来自宏。它不应该被 静音cap_lints
。我当前的用例是功能弃用,但还有其他可能的用途。
问问题
802 次
1 回答
8
这目前在稳定的 Rust 中是不可能的。但是,有一个不稳定的功能,程序宏诊断,它通过Diagnostic
API 为程序宏提供此功能。
要从程序宏内部发出编译器警告,您可以像这样使用它:
#![feature(proc_macro_diagnostic)]
use proc_macro::Diagnostic;
Diagnostic::new()
.warning("This method is deprecated")
.emit();
要将警告与特定令牌范围相关联,您可以spanned_warning
改用。这使得警告输出与消息一起显示相关的源标记。
于 2019-07-14T09:38:53.467 回答