Test Trac #5168
authorSimon Peyton Jones <simonpj@microsoft.com>
Fri, 6 May 2011 14:54:14 +0000 (15:54 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 6 May 2011 14:54:14 +0000 (15:54 +0100)
testsuite/tests/ghc-regress/simplCore/should_compile/T5168.hs [new file with mode: 0644]
testsuite/tests/ghc-regress/simplCore/should_compile/all.T

diff --git a/testsuite/tests/ghc-regress/simplCore/should_compile/T5168.hs b/testsuite/tests/ghc-regress/simplCore/should_compile/T5168.hs
new file mode 100644 (file)
index 0000000..f34a72d
--- /dev/null
@@ -0,0 +1,32 @@
+# In this test we do -ddump-simpl, and grep for 'patError.
+# We expect *not* to see patError in the output
+# because the branch is inaccessible.  
+# In GHC 7.0 and earlier, we did get a patError in the output program.
+
+{-# LANGUAGE TypeFamilies, GADTs #-}
+module NoMatch where
+
+data Tag
+data TagExtra
+
+--------
+
+data Foo a where
+  Foo :: String -> Foo a
+  FooExtra :: Int -> Foo TagExtra
+
+-- The cmm code for fooName does not match against 'FooExtra'
+fooName :: Foo Tag -> String
+fooName (Foo s) = s
+
+--------
+
+data Bar a where
+  Bar :: String -> Bar a
+  BarExtra :: a ~ TagExtra => Int -> Bar a
+
+-- The cmm code for barName will try to pattern-match against 'BarExtra'
+barName :: Bar Tag -> String
+barName (Bar s) = s
+
+
index 5038471..4df1641 100644 (file)
@@ -116,3 +116,8 @@ test('T4957',
      normal,
      run_command,
      ['$MAKE -s --no-print-directory T4957'])
+
+test('T5168',
+     normal,
+     run_command,
+     ['$MAKE -s --no-print-directory T5168'])