Commit Graph

5 Commits

Author SHA1 Message Date
dianne
b41d8bde00 let deref patterns participate in usefulness/exhaustiveness
This does not yet handle the case of mixed deref patterns with normal
constructors; it'll ICE in `Constructor::is_covered_by`. That'll be
fixed in a later commit.
2025-05-06 18:53:55 -07:00
dianne
0eb3b110f0 lower deref patterns on boxes using built-in derefs
This allows deref patterns to move out of boxes.

Implementation-wise, I've opted to put the information of whether a
deref pattern uses a built-in deref or a method call in the THIR. It'd
be a bit less code to check `.is_box()` everywhere, but I think this way
feels more robust (and we don't have a `mutability` field in the THIR
that we ignore when the smart pointer's a box). I'm not sure about the
naming (or using `ByRef`), though.
2025-04-24 14:25:27 -07:00
dianne
64c8d5d7f5 move existing tests away from using boxes
Since deref patterns on boxes will be lowered differently, I'll be
making a separate test file for them. This makes sure we're still
testing the generic `Deref(Mut)::deref(_mut)`-based lowering.
2025-04-24 14:25:27 -07:00
dianne
ff0d4bc743 upvar inference for implicit deref patterns 2025-04-16 15:42:12 -07:00
Nadrieril
b55afe475a Address closure-related review 2024-04-20 15:59:54 +02:00