1 Aug 2010 19:47
#4233: GHC internal error: `w' is not in scope during type checking, but it passed the renamer
GHC <cvs-ghc <at> haskell.org>
2010-08-01 17:47:41 GMT
2010-08-01 17:47:41 GMT
#4233: GHC internal error: `w' is not in scope during type checking, but it passed
the renamer
---------------------------------+------------------------------------------
Reporter: lilac | Owner:
Type: bug | Status: new
Priority: normal | Component: Template Haskell
Version: 6.12.1 | Keywords:
Testcase: | Blockedby:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: Compile-time crash
---------------------------------+------------------------------------------
{{{
{-# LANGUAGE TypeFamilies, TypeOperators, TemplateHaskell #-}
import Language.Haskell.TH
type family a :<=: b
w = varT (mkName "w")
f = [t|Maybe $w :<=: Int|]
}}}
fails with
{{{
GHC internal error: `w' is not in scope during type checking, but it
passed the renamer
tcg_type_env of environment: [(rgd, Type constructor `:<=:')]
In the expression: w
In the Template Haskell quotation [t| Maybe $w :<=: Int |]
In the expression: [t| Maybe $w :<=: Int |]
}}}
This testcase was produced by attempting to cut down a case which
produces:
{{{
ghc: panic! (the 'impossible' happened)
(GHC version 6.12.1 for x86_64-unknown-linux):
nameModule way{v a37C}
}}}
I don't know whether the underlying cause is the same. In both cases the
bug can be avoided by a refactoring:
{{{
a x = [t|Maybe $x|]
f = conT ''(:<=:) `appT` a x `appT` [t|Int|]
}}}
--
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4233>
RSS Feed