I’d love if there was a Rust version. In addition to Rust-specific transformations, you’d probably want to teach it how to simplify an entire crate dependency tree, involving multiple rustc invocations, rather than just one file. C/C++ header files may be crude, but they have an advantage here: after running a source file through the preprocessor, you end up with a completely self-contained file that (probably) behaves the same way. Thus you only need to reduce that one file, and AFAIK that’s all c-reduce supports. Also, for anything that is declared in a header file but defined in a different source file, c-reduce doesn’t need to know or care about the definition; if the compiler crash occurred on a source file not containing the definition, then the definition can’t be responsible. Rust doesn’t have that kind of natural separation, but maybe aggressively emptying out function bodies would be a good enough substitute.
I use creduce a lot and this experience is not at all uncommon. The fix is to make your interestingness test very specific.
It uses delta debugging [2] to minimize the reproducer, and AFAIK doesn't know about Rust. But it could be taught these rust-specific transformations.
[1] https://embed.cs.utah.edu/creduce/
[2] https://en.wikipedia.org/wiki/Delta_debugging