
#15705: Confusing parser error in 8.6 -------------------------------------+------------------------------------- Reporter: diatchki | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: 8.6.1 (Parser) | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Incorrect Unknown/Multiple | error/warning at compile-time Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Consider the following example: {{{ f x = case x of A -> 'a' B -> 'b' }}} The problem here is that `B` is misaligned, which is quite a common mistake, especially in a bigger case block. GHC reports the following error: {{{ Unexpected case expression in function application: case x of { A -> 'a' } You could write it with parentheses Or perhaps you meant to enable BlockArguments? }}} This is quite confusing, especially since the program won't parse, `BlockArguments` or not. My guess is that we are being a bit too eager with reporting the `BlockArguments` issue. One way to work around this would be to just remember if we used `BlockArguments` while parsing, but only do the check that the extension is enabled after a successful parse. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15705 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler