Enable `Enumeration is empty` warnings for `Integer`
authorHerbert Valerio Riedel <hvr@gnu.org>
Sat, 3 Oct 2015 18:05:11 +0000 (20:05 +0200)
committerBen Gamari <ben@smart-cactus.org>
Sat, 3 Oct 2015 18:05:13 +0000 (20:05 +0200)
This warning was implemented via
abb3a9faa88fad3562ac41a148dd683765f47565 for addressing #7881. The
bounded H2010 integral types were handled, but the `Integer` type was
missed for the enumeration warning.

Fixes #10929

Test Plan: reused T7881 testcase

Reviewers: thomie, bgamari, austin

Reviewed By: thomie, bgamari, austin

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1305

GHC Trac Issues: #10929

compiler/deSugar/MatchLit.hs
testsuite/tests/numeric/should_compile/T10929.hs [new file with mode: 0644]
testsuite/tests/numeric/should_compile/T10929.stderr [new file with mode: 0644]
testsuite/tests/numeric/should_compile/all.T

index fddfa80..4e6b8aa 100644 (file)
@@ -228,6 +228,7 @@ warnAboutEmptyEnumerations dflags fromExpr mThnExpr toExpr
     else if tc == word16TyConName then check (undefined :: Word16)
     else if tc == word32TyConName then check (undefined :: Word32)
     else if tc == word64TyConName then check (undefined :: Word64)
+    else if tc == integerTyConName then check (undefined :: Integer)
     else return ()
 
   | otherwise = return ()
diff --git a/testsuite/tests/numeric/should_compile/T10929.hs b/testsuite/tests/numeric/should_compile/T10929.hs
new file mode 100644 (file)
index 0000000..47e0071
--- /dev/null
@@ -0,0 +1,31 @@
+module T10929 where
+
+x1 :: [Integer]
+x1 = [5 .. 3]
+
+x2 :: [Integer]
+x2 = [3 .. 5]
+
+x3 :: [Integer]
+x3 = [5, 3 .. 1]
+
+x4 :: [Integer]
+x4 = [5, (3+0) .. 1]
+
+x5 :: [Integer]
+x5 = [1, 3 .. 5]
+
+x6 :: [Integer]
+x6 = [1, (3+0) .. 5]
+
+x7 :: [Integer]
+x7 = [5, 7 .. 1]
+
+x8 :: [Integer]
+x8 = [5, (7+0) .. 1]
+
+x9 :: [Integer]
+x9 = [3, 1 .. 5]
+
+x10 :: [Integer]
+x10 = [3, (1+0) .. 5]
diff --git a/testsuite/tests/numeric/should_compile/T10929.stderr b/testsuite/tests/numeric/should_compile/T10929.stderr
new file mode 100644 (file)
index 0000000..8723c42
--- /dev/null
@@ -0,0 +1,6 @@
+
+T10929.hs:4:6: warning: Enumeration is empty
+
+T10929.hs:22:6: warning: Enumeration is empty
+
+T10929.hs:28:6: warning: Enumeration is empty
index 246642f..ea42aad 100644 (file)
@@ -2,3 +2,4 @@ test('T7116', normal, run_command, ['$MAKE -s --no-print-directory T7116'])
 test('T7895', normal, compile, [''])
 test('T7881', normal, compile, [''])
 test('T8542', normal, compile, [''])
+test('T10929', normal, compile, [''])