[project @ 1999-08-20 11:32:41 by simonpj]
authorsimonpj <unknown>
Fri, 20 Aug 1999 11:32:41 +0000 (11:32 +0000)
committersimonpj <unknown>
Fri, 20 Aug 1999 11:32:41 +0000 (11:32 +0000)
Add tcfail083

ghc/tests/typecheck/should_fail/tcfail083.hs [new file with mode: 0644]
ghc/tests/typecheck/should_fail/tcfail083.stderr [new file with mode: 0644]

diff --git a/ghc/tests/typecheck/should_fail/tcfail083.hs b/ghc/tests/typecheck/should_fail/tcfail083.hs
new file mode 100644 (file)
index 0000000..a79be4e
--- /dev/null
@@ -0,0 +1,16 @@
+module ShouldFail where
+
+data Bar = Bar { flag :: Bool } deriving( Show )
+
+data State = State { bar :: Bar, baz :: Float }
+
+display :: State -> IO ()
+display (State{ bar = Bar { flag = f, baz = b }}) = print (f,b)
+
+-- Typo! The line above should better be:
+-- display (State{ bar = Bar { flag = f }, baz = b }) = print (f,b)
+
+-- GHC 4.04 (as released) crashed with
+--     panic! (the `impossible' happened): tcLookupValue: b{-r4n-}
+-- Bug reported by Sven Panne
+
diff --git a/ghc/tests/typecheck/should_fail/tcfail083.stderr b/ghc/tests/typecheck/should_fail/tcfail083.stderr
new file mode 100644 (file)
index 0000000..fc7776b
--- /dev/null
@@ -0,0 +1,10 @@
+
+tcfail083.hs:8:
+    Constructor `Bar' does not have field `baz'
+    In the pattern: Bar {flag = f, baz = b}
+    In the pattern: State {bar = Bar {flag = f, baz = b}}
+    In an equation for function `display':
+       display (State {bar = Bar {flag = f, baz = b}}) = print (f, b)
+
+Compilation had errors
+