Similar to #37637 so cc @jseyfried.
cat src/main.rs
fn main() {
println!("rust");
}
rustc --pretty=expanded -Zunstable-options src/main.rs
#![feature(prelude_import)]
#![no_std]
#[prelude_import]
use std::prelude::v1::*;
#[macro_use]
extern crate std as std;
fn main() {
$crate::io::_print(::std::fmt::Arguments::new_v1({
static __STATIC_FMTSTR:
&'static [&'static str]
=
&["rust\n"];
__STATIC_FMTSTR
},
&match () {
() => [],
}));
The $crate prevents the expanded code from being parsed by rustfmt.
rustc --pretty=expanded -Zunstable-options src/main.rs | rustfmt
error: expected expression, found `$`
--> stdin:8:5
|
8 | $crate::io::_print(::std::fmt::Arguments::new_v1({
| ^
This breaks cargo expand which runs the code through rustfmt by default.
I think --pretty=expanded should produce valid Rust code which means either eliminate $crate like we did for #37637, or allow rustfmt to parse it.
Similar to #37637 so cc @jseyfried.
cat src/main.rsrustc --pretty=expanded -Zunstable-options src/main.rsThe
$crateprevents the expanded code from being parsed by rustfmt.rustc --pretty=expanded -Zunstable-options src/main.rs | rustfmtThis breaks
cargo expandwhich runs the code through rustfmt by default.I think
--pretty=expandedshould produce valid Rust code which means either eliminate$cratelike we did for #37637, or allow rustfmt to parse it.