rust/tests/ui/pattern/deref-patterns
dianne 36ff87e90e EUV: fix place of deref pattern's interior's scrutinee
The place previously used here was that of the temporary holding the
reference returned by `Deref::deref` or `DerefMut::deref_mut`. However,
since the inner pattern of `deref!(inner)` expects the deref-target type
itself, this would ICE when that type was inspected (e.g. by the EUV
case for slice patterns). This adds a deref projection to fix that.

Since current in-tree consumers of EUV (upvar inference and clippy)
don't care about Rvalues, the place could be simplified to
`self.cat_rvalue(pat.hir_id, self.pat_ty_adjusted(subpat)?)` to save
some cycles. I personally find EUV to be a bit fragile, so I've opted
for pedantic correctness. Maybe a `HACK` comment would suffice though?
2025-03-13 01:01:26 -07:00
..
bindings.rs Test or-patterns inside deref patterns 2024-04-20 16:04:06 +02:00
branch.rs Lower deref patterns to MIR 2024-04-20 15:59:54 +02:00
cant_move_out_of_pattern.rs Lower deref patterns to MIR 2024-04-20 15:59:54 +02:00
cant_move_out_of_pattern.stderr add_move_error_suggestions: use a HIR visitor rather than SourceMap 2024-11-25 20:29:04 -08:00
closure_capture.rs Address closure-related review 2024-04-20 15:59:54 +02:00
dont-ice-on-slice-in-deref-pat-in-closure.rs EUV: fix place of deref pattern's interior's scrutinee 2025-03-13 01:01:26 -07:00
fake_borrows.rs Use deep fake borrows for deref patterns 2024-04-20 16:04:05 +02:00
fake_borrows.stderr Use deep fake borrows for deref patterns 2024-04-20 16:04:05 +02:00
ref-mut.rs Require DerefMut if deref pattern has nested ref mut binding 2024-03-25 19:39:45 -04:00
ref-mut.stderr Require DerefMut if deref pattern has nested ref mut binding 2024-03-25 19:39:45 -04:00
typeck_fail.rs Lower deref patterns to MIR 2024-04-20 15:59:54 +02:00
typeck_fail.stderr Lower deref patterns to MIR 2024-04-20 15:59:54 +02:00
typeck.rs Lower deref patterns to MIR 2024-04-20 15:59:54 +02:00