summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-07-03 02:46:39 +0000
committerbors <bors@rust-lang.org>2023-07-03 02:46:39 +0000
commitd5a74249c843e06b502fb097ebea2383b9a5d9b8 (patch)
treed6912b9f7861020463b1d389a34c459a359a00d8 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parent571c9fc8a9693bb75822d7b46a8d3bed0388e925 (diff)
parent4fbd6d5af46d8c93a25f3742b7837535dd6f82ed (diff)
downloadrust-d5a74249c843e06b502fb097ebea2383b9a5d9b8.tar.gz
rust-d5a74249c843e06b502fb097ebea2383b9a5d9b8.zip
Auto merge of #112882 - DrMeepster:new_un_derefer, r=oli-obk
Rewrite `UnDerefer`

Currently, `UnDerefer` is used by drop elaboration to undo the effects of the `Derefer` pass. However, it just recreates the original places with derefs in the middle of the projection. Because `ProjectionElem::Deref` is intended to be removed completely in the future, this will not work forever.

This PR introduces a `deref_chain` method that returns the places behind `DerefTemp` locals in a place and rewrites the move path code to use this. In the process, `UnDerefer` was merged into `MovePathLookup`. Now that move paths use the same places as in the MIR, the other uses of `UnDerefer` no longer require it.

See #98145
cc `@ouz-a`
r? `@oli-obk`
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions