Pretty print pattern type values with transmute if they don't satisfy their pattern by oli-obk · Pull Request #136235 · rust-lang/rust (original) (raw)

Instead of printing 0_u32 is 1.., we now print the default fallback rendering that we also use for invalid bools, chars, ...: {transmute(0x00000000): (u32) is 1..=}.

These cases can occur in mir dumps when const prop propagates a constant across a safety check that would prevent the actually UB value from existing. That's fine though, as it's dead code and we always need to allow UB in dead code.

follow-up to #136176

cc @compiler-errors @scottmcm

r? @RalfJung because of the interpreter changes