[GHC] #14575: ghc: panic! (the 'impossible' happened)

#14575: ghc: panic! (the 'impossible' happened) -------------------------------------+------------------------------------- Reporter: Pauly | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: ⊥ Component: Compiler | Version: 8.0.2 Keywords: template | Operating System: Linux haskell | Architecture: x86_64 | Type of failure: GHC doesn't work (amd64) | at all Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- I got: ghc: panic! (the 'impossible' happened) (GHC version 8.0.2 for x86_64-unknown-linux): initTc: unsolved constraints WC {wc_insol = [W] spec_a86Q :: t_a86P[tau:1] (CHoleCan: spec)} Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug This happens after adding of this call in test file (called SimpleTaggingSpec.hs): {{{#!hs $(shrinkEnumTag AnyJT) }}} Implementation of this ''shrinkEnumTag'' looks: {{{#!hs shrinkEnumTag :: forall a. (Data a, IsTag a) => a -> Q [Dec] shrinkEnumTag enm = do let dt = dataTypeOf enm ty = mkName $ dataTypeName dt tickAdd = (++"'") nameWith f = mkName . f . show derivs' = ConT . mkName <$> ["Eq", "Ord", "Enum"] mkShow tn tn' = [d|instance Show $(conT tn') where show a = show $ (toEnum $ fromEnum a :: $(conT tn))|] AlgRep algCs <- pure $ dataTypeRep dt let algCs' = [mkName $ show c | c <- algCs, fromConstr c /= (anyTag::a)] newCs = [NormalC (nameWith tickAdd n) [] | n <- algCs'] TyConI tyCon <- reify ty decs <- case tyCon of DataD _cxt _nm tyVars _mbKind _cs _derivs -> do let ty' = nameWith tickAdd ty when (null newCs) $ fail "Can't find normal constructors" showInst <- mkShow ty ty' return $ [DataD [] ty' tyVars Nothing newCs derivs'] ++ showInst _ -> fail "expected Enum-like data type" return decs }}} If I add this call in not-test module, all is good, compilation is fine, application works. I use GHC 8.0.2, this happened with LTS-8.13 and LTS-9.18. Project uses stack tool. OS is Linux OpenSUSE Tumbleweed. I updated stack to the last version (1.6.1) but this did not help. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14575 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14575: ghc: panic! (the 'impossible' happened) -------------------------------------+------------------------------------- Reporter: Pauly | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: ⊥ Component: Compiler | Version: 8.0.2 Resolution: duplicate | Keywords: template | haskell Operating System: Linux | Architecture: x86_64 Type of failure: GHC doesn't work | (amd64) at all | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * status: new => closed * resolution: => duplicate Comment: Thanks. Almost certainly a dup of #13106; fixed in 8.2. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14575#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC