David Tolnay
David Tolnay
Currently the Cargo subprocess spawned by cargo-expand does not display Cargo's usual progress bar. I believe this is because we pipe the child's stderr to perform filtering here: https://github.com/dtolnay/cargo-expand/blob/3ae4ca126a4bd557ef7f7954911d65db56525b37/src/main.rs#L358 and...
I would expect something like `cargo expand --build`, which shows build.rs after macro expansion.
Currently macro_rules definitions are not visible in the expanded code. Sometimes it can be useful to see them, such as when you have a procedural macro whose job is to...
Rustfmt can hit cases where code takes exponentially long to format, particularly in macro-generated code. https://github.com/rust-lang/rustfmt/issues/3465 We may want to consider limiting rustfmt execution time to some small number of...
If the user has a crate like: ```rust fn main() { println!("{:?}", S); } ``` We can inject the following code before compiling, I guess similarly to how `cargo clippy`...
When expanding a crate with hundreds of thousands of lines post expansion, the progress can seem to pause for many seconds after printing: ```console Finished dev [unoptimized + debuginfo] target(s)...
[Basically this.](https://users.rust-lang.org/t/improve-compile-time-and-executable-size-by-counting-lines-of-llvm-ir/14203/18?u=dtolnay) For example the instantiations of HashMap::insert could be: ``` HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap HashMap...
Reference: - https://rust-lang.github.io/rfcs/3143-cargo-weak-namespaced-features.html - https://github.com/rust-lang/cargo/issues/8832 Example: ```toml [dependencies] serde = { version = "1.0", optional = true, default-features = false } [features] std = ["serde?/std"] ```
Reference: - https://rust-lang.github.io/rfcs/3143-cargo-weak-namespaced-features.html - https://github.com/rust-lang/cargo/issues/5565 Example: ```toml [dependencies] ravif = { version = "0.6.3", optional = true } rgb = { version = "0.8.25", optional = true } [features] avif...