Less temporary variables in desugaring

No, the `if noExtractYet` is the smartest it can get without compromising evaluation order.