#15370: Typed hole panic on GHC 8.6 (tcTyVarDetails) -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: Tritlo Type: bug | Status: new Priority: high | Milestone: 8.6.1 Component: Compiler (Type | Version: 8.4.3 checker) | Keywords: TypeInType, Resolution: | TypedHoles Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Tritlo): After some investigation, here is some more info: I'm running this on the branch on which I've fixed #15384, and now it generates a different panic: {{{ Filling a filled coercion hole co_a1we Sym (S <x_a1vL[sk:1]>_N <x_a1vL[sk:1]>_N (Sym (GRefl nominal r_a1vN[sk:1] (Sym (Either <x_a1vL[sk:1]>_N (Sym co_a1vU))_N)) ; GRefl nominal r_a1vN[sk:1] (Sym (Either <x_a1vL[sk:1]>_N (Sym co_a1vU))_N)))_N ; {co_a1ws} Sym (S <x_a1vL[sk:1]>_N <x_a1vL[sk:1]>_N (Sym (GRefl nominal r_a1vN[sk:1] (Sym (Either <x_a1vL[sk:1]>_N (Sym co_a1vU))_N)) ; GRefl nominal r_a1vN[sk:1] (Sym (Either <x_a1vL[sk:1]>_N (Sym co_a1vU))_N)))_N ; {co_a1wm} }}} This happens when trying to simplify: {{{ WC {wc_impl = Implic { TcLevel = 1 Skolems = x_a1vL[sk:1] y_a1vM[sk:1] (r_a1vN[sk:1] :: Either x_a1vL[sk:1] y_a1vM[sk:1]) No-eqs = True Status = Insoluble Given = Wanted = WC {wc_impl = Implic { TcLevel = 2 Skolems = No-eqs = False Status = Insoluble Given = co_a1vU :: y_a1vM[sk:1] GHC.Prim.~# x_a1vL[sk:1] Wanted = WC {wc_simple = [WD] hole{co_a1wo} {0}:: (S r_a1vN[sk:1] -> ()) GHC.Prim.~# S (r_a1vN[sk:1] |> Sym (Either <x_a1vL[sk:1]>_N (Sym co_a1vU))_N) (CNonCanonical) [WD] hole{co_a1we} {1}:: S (r_a1vN[sk:1] |> Sym (Either <x_a1vL[sk:1]>_N (Sym co_a1vU))_N) GHC.Prim.~# () (CNonCanonical) [WD] $dNum_a1wf {0}:: Num (S (r_a1vN[sk:1] |> Sym (Either <x_a1vL[sk:1]>_N (Sym co_a1vU))_N)) (CNonCanonical)} Binds = EvBindsVar<a1wp> a pattern with constructor: Refl :: forall k (a :: k). a :~: a, in a case alternative }} }}} where {{{ WC {wc_simple = [WD] hole{co_a1wi} {0}:: y_a1vM[sk:1] GHC.Prim.~# x_a1vL[sk:1] (CNonCanonical)} }}} is generated by `tcSubType_NC`. I'm not sure how to prevent/catch the filling of the unfilled coercion hole and discard those fits. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15370#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler