It's a little more complicated that that, however, since temporaries in the conditional of an if or if let or while expression can be dropped before the end of the enclosing statement, but not in a while let or match expression. Unfortunately, as you concluded in the previous thread, making this more consistent would break existing code.