unhelpful parse error message: Unexpected do block in function application
Not a bug, as ghc correctly rejects an invalid program. But I have the impression that the error message is getting less precise (for reason and location) from 8.4 to 8.6:
foo = do
let x = case y of
Nothing -> True
bar
- 6.3 says
P.hs:1:7: error:
Unexpected do block in function application:
do let x = ...
You could write it with parentheses
Or perhaps you meant to enable BlockArguments?
|
1 | foo = do
| ^^...
I am not seeing what application ghc thinks of.
- 4.4 had the more useful
P.hs:3:5: error: parse error on input ‘Nothing’
|
3 | Nothing -> True
| ^^^^^^^
More useful, since in the actual code, from which I distilled the above, there were a dozen lines between the locations that were reported by 8.6.3 and 8.4.4.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.6.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Parser) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |