about summary refs log tree commit diff
path: root/compiler/rustc_codegen_gcc
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-05-31 16:36:51 +0000
committerbors <bors@rust-lang.org>2023-05-31 16:36:51 +0000
commit871b5952023139738f72eba235063575062bc2e9 (patch)
treeb86f5fd3b7adb32b6048316468024d25c5f86851 /compiler/rustc_codegen_gcc
parentad8304a0d5280de30856b39c19df7b306957e878 (diff)
parent3c02cfc3e7e52ce023b565180c63c72bd7ab675d (diff)
downloadrust-871b5952023139738f72eba235063575062bc2e9.tar.gz
rust-871b5952023139738f72eba235063575062bc2e9.zip
Auto merge of #111913 - oli-obk:valtrees2, r=lcnr
Only rewrite valtree-constants to patterns and keep other constants opaque

Now that we can reliably fall back to comparing constants with `PartialEq::eq` to the match scrutinee, we can

1. eagerly try to convert constants to valtrees
2. then deeply convert the valtree to a pattern
3. if the to-valtree conversion failed, create an "opaque constant" pattern.

This PR specifically avoids any behavioral changes or major cleanups. What we can now do as follow ups is

* move the two remaining call sites to `destructure_mir_constant` off that query
* make valtree to pattern conversion infallible
    * this needs to be done after careful analysis of the effects. There may be user visible changes from that.

based on https://github.com/rust-lang/rust/pull/111768
Diffstat (limited to 'compiler/rustc_codegen_gcc')
0 files changed, 0 insertions, 0 deletions