about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2019-09-19 11:41:10 -0400
committerNiko Matsakis <niko@alum.mit.edu>2019-09-19 11:50:00 -0400
commitb2c51c24c96f8827eefc6f0de29636cc4cb6ff2c (patch)
treefedf90b2380e3fd29ba5bfa23967369f0ae49b91 /src/libsyntax/parse
parente35698371d36da83d3aca8322ad812fa5512b90f (diff)
downloadrust-b2c51c24c96f8827eefc6f0de29636cc4cb6ff2c.tar.gz
rust-b2c51c24c96f8827eefc6f0de29636cc4cb6ff2c.zip
avoid generating drops for moved operands of calls
Currently, after a CALL terminator is created in MIR, we insert DROP
statements for all of its operands -- even though they were just moved
shortly before! These spurious drops are later removed, but not before
causing borrow check errors.

This PR series modifies the drop code to track operands that were
moved and avoid creating drops for them.

Right now, I'm only using this mechanism for calls, but it seems
likely it could be used in more places.
Diffstat (limited to 'src/libsyntax/parse')
0 files changed, 0 insertions, 0 deletions