Commit d259dd70 authored by simonpj@microsoft.com's avatar simonpj@microsoft.com
Browse files

Improve error dump in TcEnv

parent 836b1e90
...@@ -115,10 +115,10 @@ tcLookupGlobal name ...@@ -115,10 +115,10 @@ tcLookupGlobal name
-- Should it have been in the local envt? -- Should it have been in the local envt?
{ case nameModule_maybe name of { case nameModule_maybe name of
Nothing -> notFound name env -- Internal names can happen in GHCi Nothing -> notFound name -- Internal names can happen in GHCi
Just mod | mod == tcg_mod env -- Names from this module Just mod | mod == tcg_mod env -- Names from this module
-> notFound name env -- should be in tcg_type_env -> notFound name -- should be in tcg_type_env
| otherwise | otherwise
-> tcImportDecl name -- Go find it in an interface -> tcImportDecl name -- Go find it in an interface
}}}}} }}}}}
...@@ -707,12 +707,14 @@ pprBinders :: [Name] -> SDoc ...@@ -707,12 +707,14 @@ pprBinders :: [Name] -> SDoc
pprBinders [bndr] = quotes (ppr bndr) pprBinders [bndr] = quotes (ppr bndr)
pprBinders bndrs = pprWithCommas ppr bndrs pprBinders bndrs = pprWithCommas ppr bndrs
notFound :: Name -> TcGblEnv -> TcM TyThing notFound :: Name -> TcM TyThing
notFound name env notFound name
= failWithTc (vcat[ptext (sLit "GHC internal error:") <+> quotes (ppr name) <+> = do { (gbl,lcl) <- getEnvs
; failWithTc (vcat[ptext (sLit "GHC internal error:") <+> quotes (ppr name) <+>
ptext (sLit "is not in scope during type checking, but it passed the renamer"), ptext (sLit "is not in scope during type checking, but it passed the renamer"),
ptext (sLit "tcg_type_env of environment:") <+> ppr (tcg_type_env env)] ptext (sLit "tcg_type_env of environment:") <+> ppr (tcg_type_env gbl),
) ptext (sLit "tcl_env of environment:") <+> ppr (tcl_env lcl)]
) }
wrongThingErr :: String -> TcTyThing -> Name -> TcM a wrongThingErr :: String -> TcTyThing -> Name -> TcM a
wrongThingErr expected thing name wrongThingErr expected thing name
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment