如何让cargo-expand在宏内扩展宏

Roc*_*k48 2 rust rust-cargo

我正在学习 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"));
    };
}
Run Code Online (Sandbox Code Playgroud)

据我了解, 的输出cargo expand应该扩展所有内容,所以我有点困惑。我尝试谷歌搜索并寻找答案,但我读到的所有内容都显示输出中没有宏。

这到底对不对?

kmd*_*eko 5

如果你指的是,我会引用本期的format_args!dtolnay(cargo-expand 维护者):

这是正常工作的。format_args不会扩展到 Rust 代码。(过去也是这样。)

Cargo-expand递归地扩展宏。只是在这种情况下不能。