about summary refs log tree commit diff
path: root/compiler/rustc_codegen_gcc
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-06-15 18:25:42 +0000
committerbors <bors@rust-lang.org>2024-06-15 18:25:42 +0000
commit0dc265ff82fe861f673f20003e4370df52f50ff3 (patch)
treecb69eee5cec3c3d607ef7485f682d822e3c89d75 /compiler/rustc_codegen_gcc
parent73c1bfbc5734af7e086fca13ed406889d643de52 (diff)
parent60508f546a07fa51169736766b7e16676724c496 (diff)
downloadrust-0dc265ff82fe861f673f20003e4370df52f50ff3.tar.gz
rust-0dc265ff82fe861f673f20003e4370df52f50ff3.zip
Auto merge of #12756 - y21:assigning_clones_lifetimes, r=Alexendoo
Avoid emitting `assigning_clones` when cloned data borrows from the place to clone into

Fixes #12444
Fixes #12460
Fixes #12749
Fixes #12757
Fixes #12929

I think the documentation for the function should describe what- and how this is fixing the issues well.
It avoids emitting a warning when the data being cloned borrows from the place to clone into, which is information that we can get from `PossibleBorrowerMap`. Unfortunately, it is a tiny bit tedious to match on the MIR like that and I'm not sure if this is possibly relying a bit too much on the exact MIR lowering for assignments.

Things left to do:
- [x] Handle place projections (or verify that they work as expected)
- [x] Handle non-`Drop` types

changelog: [`assigning_clones`]: avoid warning when the suggestion would lead to a borrow-check error
Diffstat (limited to 'compiler/rustc_codegen_gcc')
0 files changed, 0 insertions, 0 deletions