
#9975: RecordWildcards and PatternSynonyms cause impossible bug -------------------------------------+------------------------------------- Reporter: gamegoblin | Owner: Type: bug | Status: new Priority: normal | Milestone: 7.10.1 Component: Compiler | Version: 7.10.1-rc1 Resolution: | Keywords: Operating System: Unknown/Multiple | RecordWildcards PatternSynonyms Type of failure: Compile-time | Architecture: x86_64 crash | (amd64) Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Changes (by hvr): * cc: cactus (added) * os: MacOS X => Unknown/Multiple * milestone: => 7.10.1 Old description:
When using RecordWildcards with PatternSynonyms, I have found a way to cause this bug:
$ /usr/local/bin/ghc-7.10.0.20141222 test.hs [1 of 1] Compiling Main ( test.hs, test.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.10.0.20141222 for x86_64-apple-darwin): find_tycon Test [Test defined at test.hs:6:9, Test parent:Test defined at test.hs:4:13]
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Here is the full code that causes it:
{{{#!hs {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE PatternSynonyms #-} data Test = Test { x :: Int } pattern Test wat = Test { x = wat } }}}
If you remove RecordWildCards, the bug does not happen.
New description: When using RecordWildcards with PatternSynonyms, I have found a way to cause this bug: {{{ $ /usr/local/bin/ghc-7.10.0.20141222 test.hs [1 of 1] Compiling Main ( test.hs, test.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.10.0.20141222 for x86_64-apple-darwin): find_tycon Test [Test defined at test.hs:6:9, Test parent:Test defined at test.hs:4:13] Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug }}} Here is the full code that causes it: {{{#!hs {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE PatternSynonyms #-} data Test = Test { x :: Int } pattern Test wat = Test { x = wat } }}} If you remove `RecordWildCards`, the bug does not happen. -- Comment: Maybe this was fixed already, as I can't reproduce it anymore with a current `ghc-7.10` snapshot: {{{ $ ghc-7.10.0.20150119 -c test.hs test.hs:4:1: Multiple declarations of ‘Test’ Declared at: test.hs:3:13 test.hs:4:1 }}} It may be worth bisecting to find out which commit fixed it, unless cactus happens to know already which commit fixed it... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9975#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler