#3901: Panic from combining generalized list comprehensions and record wildcards
-------------------------------+--------------------------------------------
Reporter: amthrax | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 6.12.1 | Keywords:
Os: Linux | Testcase:
Architecture: x86_64 (amd64) | Failure: Compile-time crash
-------------------------------+--------------------------------------------
Combining record wild cards with generalized list comprehension grouping
causes the type-checker to mis-infer the type of the list comprehension,
potentially leading to a panic. For example
{{{
data Rec = Rec {a :: Int} deriving (Show)
recs :: [[Int]]
recs = [a | Rec {..} <- [Rec 1], then group by a]
}}}
results in a type error, because GHC thinks recs has type [Int]. On the
other hand,
{{{
recs :: [[Int]]
recs = [a | Rec {a=a} <- [Rec 1], then group by a]
}}}
compiles, correctly.
If the type annotation is omitted from the first example, GHC panics with
{{{
ghc: panic! (the 'impossible' happened)
(GHC version 6.12.1 for x86_64-unknown-linux):
expectJust rnStmt
}}}
I've attached a test file that demonstrates the bug.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3901>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs