projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add -fmono-pat-binds, and make it the default
[ghc-hetmet.git]
/
compiler
/
iface
/
IfaceEnv.lhs
diff --git
a/compiler/iface/IfaceEnv.lhs
b/compiler/iface/IfaceEnv.lhs
index
40b7d31
..
3c1db55
100644
(file)
--- a/
compiler/iface/IfaceEnv.lhs
+++ b/
compiler/iface/IfaceEnv.lhs
@@
-288,9
+288,10
@@
initOrigNames names = foldl extendOrigNameCache emptyModuleEnv names
tcIfaceLclId :: OccName -> IfL Id
tcIfaceLclId occ
= do { lcl <- getLclEnv
tcIfaceLclId :: OccName -> IfL Id
tcIfaceLclId occ
= do { lcl <- getLclEnv
- ; return (lookupOccEnv (if_id_env lcl) occ
- `orElse`
- pprPanic "tcIfaceLclId" (ppr occ)) }
+ ; case (lookupOccEnv (if_id_env lcl) occ) of
+ Just ty_var -> return ty_var
+ Nothing -> failIfM (text "Iface id out of scope: " <+> ppr occ)
+ }
refineIfaceIdEnv :: TypeRefinement -> IfL a -> IfL a
refineIfaceIdEnv (tv_subst, _) thing_inside
refineIfaceIdEnv :: TypeRefinement -> IfL a -> IfL a
refineIfaceIdEnv (tv_subst, _) thing_inside
@@
-311,9
+312,10
@@
extendIfaceIdEnv ids thing_inside
tcIfaceTyVar :: OccName -> IfL TyVar
tcIfaceTyVar occ
= do { lcl <- getLclEnv
tcIfaceTyVar :: OccName -> IfL TyVar
tcIfaceTyVar occ
= do { lcl <- getLclEnv
- ; return (lookupOccEnv (if_tv_env lcl) occ
- `orElse`
- pprPanic "tcIfaceTyVar" (ppr occ)) }
+ ; case (lookupOccEnv (if_tv_env lcl) occ) of
+ Just ty_var -> return ty_var
+ Nothing -> failIfM (text "Iface type variable out of scope: " <+> ppr occ)
+ }
extendIfaceTyVarEnv :: [TyVar] -> IfL a -> IfL a
extendIfaceTyVarEnv tyvars thing_inside
extendIfaceTyVarEnv :: [TyVar] -> IfL a -> IfL a
extendIfaceTyVarEnv tyvars thing_inside