Files
rust/tests/ui
Stuart Cook aa9a80cc34 Rollup merge of #138393 - oli-obk:pattern-type-in-pattern, r=BoxyUwU
Allow const patterns of matches to contain pattern types

Trying to pattern match on a type containing a pattern type will currently fail with an ICE

```rust
error: internal compiler error: compiler/rustc_mir_build/src/builder/matches/test.rs:459:18: invalid type for non-scalar compare: (u32) is 1..
  --> src/main.rs:22:5
   |
22 |     TWO => {}
   |     ^^^
```

because the compiler tries to generate a MIR `BinOp(Eq)` operation on a pattern type, which is not supported. While we could support that, there are side effects of allowing this (none that would compile, but the compiler would simultaneously think it could `==` pattern types and that it could not because `PartialEq` is not implemented. So instead I change the logic for pattern matching to transmute pattern types to their base type before comparing.

r? ```@BoxyUwU```

cc #123646 ```@scottmcm``` ```@joshtriplett```
2025-04-15 15:47:25 +10:00
..
2025-03-03 08:52:07 +01:00
2025-02-27 10:26:33 +00:00
2024-12-12 23:36:27 +00:00
2025-03-11 20:26:10 -07:00
2025-02-24 18:48:40 +00:00
2024-12-12 23:36:27 +00:00
2025-01-28 19:35:51 +00:00
2025-03-29 08:10:15 +01:00
2025-02-27 20:02:25 +00:00
2025-03-30 01:32:21 +03:00
2025-04-04 09:44:19 +02:00
2025-03-11 20:26:10 -07:00
2025-04-14 10:36:13 +08:00
2025-01-29 15:45:13 +00:00
2025-03-27 14:11:11 +01:00
2025-02-27 10:26:33 +00:00
2025-01-23 10:55:01 +00:00
2025-02-04 21:42:43 +05:30
2025-04-04 16:32:18 +02:00