我正在学习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
的输出应该扩展所有内容,所以我有点困惑。我试着在谷歌上搜索答案,但我读到的所有内容都显示输出中没有宏。
这到底对不对?
1条答案
按热度按时间oyxsuwqo1#
如果你指的是
format_args!
,我将引用dtolnay(cargo-expand维护者)从this issue:这是正确的工作。
format_args
不会扩展到Rust代码。(在过去它曾经。)Cargo-expand * 确实 * 递归地扩展宏。只是在这种情况下它不能。