compiler-errors - 在编译时发出警告?

标签 compiler-errors rust rust-macros

我想在编译时发出警告,可能来自宏。它不应该被 cap_lints 静音。我当前的用例是功能弃用,但还有其他可能的用途。

最佳答案

目前这在稳定的 Rust 中是不可能的。但是,有一个不稳定的功能,procedural macro diagnostics ,它通过 Diagnostic 为程序宏提供此功能。 API。

要从过程宏内部发出编译器警告,您可以像这样使用它:

#![feature(proc_macro_diagnostic)]

use proc_macro::Diagnostic;

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

要将警告与特定 token 范围相关联,您需要使用 spanned_warning。这使得警告输出显示相关的源标记以及消息的下划线。

关于compiler-errors - 在编译时发出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57025894/

相关文章:

RuSTLang 书 14.3 - 错误 [E0425] : cannot find function `add_one` in crate `add_one`

rust - 原始变量的生命周期不够长

macros - 如何在 Rust 中编写宏来匹配集合中的任何元素?

rust - Rust 中的宏调用意外结束

rust - 如何使用一系列参数初始化结构

c++ - "No match for operator="试图在 C++ 中遍历映射

actionscript-3 - 错误#1063 : Argument count mismatch on object in Constructor

java - 更改 Android TextView 可见性时出错

asp.net-mvc - 无参数构造函数、结构图、新区域

compilation - 是否有宏或类似的解决方法在编译时包含源文件夹 (src) 路径?