Less temporary variables in desugaring

Arguably, yes. But it came as part of tackling `if`s in expression position, actually, although it would have made sense in the previous commit as well. I can move it if you want.