Poor parse error
Given the fragment:
f x = do case x of
Just foo -> do
stmt1
stmt2
stmt3
stmt4
stmt5
stmt6
Nothing ->
a <- var
stmt1
stmt2
stmt3
There is a parse error after the Nothing
, I should have included a do
.
GHC says:
bug.hs:1:9: Parse error in pattern
This error message can be made to be arbitrarily far away from the point at which the error actually occurs.
Haskell-src-exts does far better with:
bug.hs:10:19: Parse error in pattern
Reporting <-
binding errors against the arrow, rather than the (assumed) start of the pattern seems to be a better choice.
Trac metadata
Trac field | Value |
---|---|
Version | 6.10.4 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |