rust 如何使用cargo-expand来扩展宏中的宏

0ve6wy6x  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(210)

我正在学习Rust,并试图在默认的Hello,World程序中使用cargo-expand。据我所知,它应该扩展所有的宏,但当我使用它时,它会留在另一个宏生成的宏中。

#![feature(prelude_import)]
#[prelude_import]
use std::prelude::rust_2021::*;
#[macro_use]
extern crate std;
fn main() {
    {
        ::std::io::_print(format_args!("Hello, World\n"));
    };
}

字符串
据我所知,cargo expand的输出应该扩展所有内容,所以我有点困惑。我试着在谷歌上搜索答案,但我读到的所有内容都显示输出中没有宏。
这到底对不对?

oyxsuwqo

oyxsuwqo1#

如果你指的是format_args!,我将引用dtolnay(cargo-expand维护者)从this issue
这是正确的工作。format_args不会扩展到Rust代码。(在过去它曾经。)
Cargo-expand * 确实 * 递归地扩展宏。只是在这种情况下它不能。

相关问题