librustc: Don't create scratch for the base expr in function record update.
librustc: Fix trans for functional record update when discarding the result.
auto merge of #16511 : luqmana/rust/sbnt, r=pcwalton

Fixes #15397.
Fixes #7261.
Fixes #6573.