Compiler errors 在编译时发出警告?

Compiler errors 在编译时发出警告?,compiler-errors,rust,rust-macros,Compiler Errors,Rust,Rust Macros,我想在编译时发出警告,可能是从宏发出的。它不应通过cap_lints消声。我当前的用例是功能弃用,但它还有其他可能的用途。这在stable Rust中目前是不可能的。但是,有一个不稳定的特性,它通过API为过程宏提供此功能 要从过程宏内部发出编译器警告,可以如下使用: #![feature(proc_macro_diagnostic)] use proc_macro::Diagnostic; Diagnostic::new() .warning("This method is dep

我想在编译时发出警告,可能是从宏发出的。它不应通过
cap_lints
消声。我当前的用例是功能弃用,但它还有其他可能的用途。

这在stable Rust中目前是不可能的。但是,有一个不稳定的特性,它通过API为过程宏提供此功能

要从过程宏内部发出编译器警告,可以如下使用:

#![feature(proc_macro_diagnostic)]

use proc_macro::Diagnostic;

Diagnostic::new()
    .warning("This method is deprecated")
    .emit();

要将警告与特定的标记范围相关联,可以使用
span\u warning
。这将使警告输出显示带下划线的相关源标记以及消息。

这在stable Rust中目前是不可能的。但是,有一个不稳定的特性,它通过API为过程宏提供此功能

要从过程宏内部发出编译器警告,可以如下使用:

#![feature(proc_macro_diagnostic)]

use proc_macro::Diagnostic;

Diagnostic::new()
    .warning("This method is deprecated")
    .emit();
要将警告与特定的标记范围相关联,可以使用
span\u warning
。这将使警告输出显示带下划线的相关源标记以及消息