• Sebastian Graf's avatar
    Infer rho-types instead of sigma-types in guard BindStmts and TransStmts · 6ede3554
    Sebastian Graf authored
    In #17343 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.
TcMatches.hs 46.7 KB