Skip to content

"if ... then \case -> else ..." causes a "missing else clause" error

The following program:

{-# LANGUAGE LambdaCase #-}

foo =
    if True
    then
        \case ->
            1 -> 2
    else id

Produces this message:

problem.hs:4:5:
    parse error in if statement: missing required else clause

The problem in the code is that there's a -> after the \case.

I don't know if a better error message can be generated, but this one is really unhelpful.

Trac metadata
Trac field Value
Version 7.10.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler (Parser)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information