projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add ASSERTs to all calls of nameModule
[ghc-hetmet.git]
/
compiler
/
typecheck
/
TcSplice.lhs
diff --git
a/compiler/typecheck/TcSplice.lhs
b/compiler/typecheck/TcSplice.lhs
index
d63b4a0
..
7139fa8
100644
(file)
--- a/
compiler/typecheck/TcSplice.lhs
+++ b/
compiler/typecheck/TcSplice.lhs
@@
-73,6
+73,8
@@
import qualified Language.Haskell.TH.Syntax as TH
import GHC.Exts ( unsafeCoerce#, Int#, Int(..) )
#if __GLASGOW_HASKELL__ < 609
import qualified Exception ( userErrors )
import GHC.Exts ( unsafeCoerce#, Int#, Int(..) )
#if __GLASGOW_HASKELL__ < 609
import qualified Exception ( userErrors )
+#else
+import System.IO.Error
#endif
\end{code}
#endif
\end{code}
@@
-603,9
+605,15
@@
runMeta convert expr
-> failM -- Error already in Tc monad
| otherwise -> failWithTc (mk_msg "run" exn) -- Exception
#else
-> failM -- Error already in Tc monad
| otherwise -> failWithTc (mk_msg "run" exn) -- Exception
#else
- Left (SomeException exn) -> do
+ Left (SomeException exn) ->
case cast exn of
case cast exn of
- Just (ErrorCall "IOEnv failure") ->
+ Just (ErrorCall "IOEnv failure") ->
+ failM -- Error already in Tc monad
+ _ ->
+ case cast exn of
+ Just ioe
+ | isUserError ioe &&
+ (ioeGetErrorString ioe == "IOEnv failure") ->
failM -- Error already in Tc monad
_ -> failWithTc (mk_msg "run" exn) -- Exception
#endif
failM -- Error already in Tc monad
_ -> failWithTc (mk_msg "run" exn) -- Exception
#endif
@@
-932,7
+940,7
@@
reifyName thing
-- have free variables, we may need to generate NameL's for them.
where
name = getName thing
-- have free variables, we may need to generate NameL's for them.
where
name = getName thing
- mod = nameModule name
+ mod = ASSERT( isExternalName name ) nameModule name
pkg_str = packageIdString (modulePackageId mod)
mod_str = moduleNameString (moduleName mod)
occ_str = occNameString occ
pkg_str = packageIdString (modulePackageId mod)
mod_str = moduleNameString (moduleName mod)
occ_str = occNameString occ