
#12130: ghc: panic! (the 'impossible' happened): find_tycon Block [] -------------------------------------+------------------------------------- Reporter: jeiea | Owner: Type: bug | Status: new Priority: high | Milestone: Component: Template Haskell | Version: 8.0.1 Resolution: | Keywords: | DisambiguateRecordFields Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: #11228 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by thomie): * priority: normal => high * cc: adamgundry (added) * related: => #11228 * keywords: => DisambiguateRecordFields Comment: Regression from 7.10. Here is a reproducer: A.hs: {{{#!hs {-# Language TemplateHaskell #-} {-# Language DisambiguateRecordFields #-} -- DisambiguateRecordFields (or RecordWildCards) is necessary -- to trigger the bug. module A where import B hiding (Block) -- Hiding "Block" is necessary to trigger the bug. b = $(block) {- ghc: panic! (the 'impossible' happened) (GHC version 8.0.1 for x86_64-unknown-linux): find_tycon Block [] -} }}} B.hs: {{{#!hs {-# LANGUAGE TemplateHaskell #-} module B where import Language.Haskell.TH data Block = Block { blockSelector :: () } block :: Q Exp block = [| Block { -- Using record syntax is neccesary to trigger the bug. blockSelector = () } |] }}} CC adamgundry, as he was the last to touch `find_tycon`. The discussion in ticket:11228#comment:4 seems relevant. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12130#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler