Opened 2 years ago

Last modified 2 months ago

#7669 new bug

Empty case causes warning

Reported by: goldfire Owned by:
Priority: normal Milestone: 7.12.1
Component: Compiler Version: 7.7
Keywords: EmptyCase Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Incorrect warning at compile-time Test Case: deSugar/should_compile/T7669
Blocked By: Blocking:
Related Tickets: Differential Revisions:

Description

The following code

{-# LANGUAGE EmptyCase #-}
{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
data Void

foo :: Void -> ()
foo x = case x of {}

causes this warning

/Users/rae/temp/Scratch.hs:6:9: Warning:
    Pattern match(es) are non-exhaustive
    In a case alternative: Patterns not matched:
Ok, modules loaded: Main.

Change History (7)

comment:1 Changed 2 years ago by simonpj@…

commit 9162d159a62d19d4b371b7348eb1b524001fddcd

Author: Simon Peyton Jones <[email protected]>
Date:   Wed Feb 13 17:37:17 2013 +0000

    Simplify the base case for 'check', and thereby fix Trac #7669

 compiler/deSugar/Check.lhs |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

comment:2 Changed 2 years ago by simonpj

  • difficulty set to Unknown
  • Resolution set to fixed
  • Status changed from new to closed
  • Test Case set to deSugar/should_compile/T7669

Thanks. Turns out I could cure this and make the code simpler!

Simon

comment:3 Changed 2 years ago by monoidal

However, previously empty case always gave a warning; now it never does.

f :: Bool -> a
f x = case x of { }

comment:4 Changed 2 years ago by simonpj

  • Resolution fixed deleted
  • Status changed from closed to new

Very true.

Would anyone like to look at the overlapping-pattern warnings? It's a well-defined problem, restricted to a single module in GHC (deSugar/Check.lhs). We have a bunch of tickets about it: at least #595, #5728, #3927, #5724, #5762, #4139, #6124.

A lovely project awaits!

Meanwhile I think I'll leave the code in its simplified state.

Simon

comment:5 Changed 23 months ago by igloo

  • Milestone set to 7.8.1

comment:6 Changed 10 months ago by thoughtpolice

  • Milestone changed from 7.8.3 to 7.10.1

Moving to 7.10.1

comment:7 Changed 2 months ago by thoughtpolice

  • Milestone changed from 7.10.1 to 7.12.1

Moving to 7.12.1 milestone; if you feel this is an error and should be addressed sooner, please move it back to the 7.10.1 milestone.

Note: See TracTickets for help on using tickets.