Do NRVO when type of returned local does not match return type #72428
Labels
A-mir-opt
Area: MIR optimizations
A-mir-opt-nrvo
Fixed by NRVO
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
#72205 will fail to fire for code such as the following:
This is because, by the time we get to the
RenameReturnPlace
pass, the reborrow has been optimized away and we have MIR like:To merge these locals, we need to pick a type for the unified
LocalDecl
. However, I wasn't sure how or if codegen makes use of the types of locals, so for now #72205 just doesn't run if the locals have different type. We should come up with a solution here.The text was updated successfully, but these errors were encountered: