
#12785: GHC panic, `tcTyVarDetails` is missing a case -------------------------------------+------------------------------------- Reporter: heisenbug | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: yes Blocked By: | Blocking: Related Tickets: #12590 | Differential Rev(s): Phab:D2931 Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): For the record, I was never convinced that Simon's a0899b2... was a good idea. I think we went with it thinking "let's try and see what happens". And now we see what happens! I advocate for reverting that commit. Simon, the message says that it slows GHC down, but why? If the check is compiled by a sufficiently smart compiler, it shouldn't slow a thing down in the common case. Right after the `isTyVar` check (which should be inlined), we do a `tcTyVarDetails`. This requires case-splitting on the constructor for the `Var`. All we want to do is to replace the default error continuation in the non-`TcTyVar` case with something that returns `False`. Or is GHC not a sufficiently smart compiler? :) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12785#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler