Print a friendly error for the if-let construct without an else block

Fixes #19991.
Currently bty is generated in the desugaring process, and is `expr_tuple(span, vec![])`.