Infer rho-types instead of sigma-types in guard BindStmts and TransStmts
In #17343 (closed) we saw that we didn't handle the pattern guard !_ <- undefined
correctly: The undefined
was never evaluated. Indeed,
elaboration failed to insert the invisible type aruments to undefined
.
So undefined
was trivially a normal-form and in turn never entered.
The problem is that we used to infer a sigma-type for the RHS of the guard, the leading qualifiers of which will never be useful in a pattern match situation. Hence we infer a rho-type now.
Fixes #17343 (closed).