projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
577c8a6
)
Make FamInst warning-free
author
Ian Lynagh
<igloo@earth.li>
Tue, 6 May 2008 17:10:31 +0000
(17:10 +0000)
committer
Ian Lynagh
<igloo@earth.li>
Tue, 6 May 2008 17:10:31 +0000
(17:10 +0000)
compiler/typecheck/FamInst.lhs
patch
|
blob
|
history
diff --git
a/compiler/typecheck/FamInst.lhs
b/compiler/typecheck/FamInst.lhs
index
eed79ca
..
8e8df88
100644
(file)
--- a/
compiler/typecheck/FamInst.lhs
+++ b/
compiler/typecheck/FamInst.lhs
@@
-1,13
+1,6
@@
The @FamInst@ type: family instance heads
\begin{code}
The @FamInst@ type: family instance heads
\begin{code}
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
-
module FamInst (
checkFamInstConsistency, tcExtendLocalFamInstEnv
) where
module FamInst (
checkFamInstConsistency, tcExtendLocalFamInstEnv
) where
@@
-180,7
+173,7
@@
checkForConflicts inst_envs famInst
Nothing -> panic "FamInst.checkForConflicts"
Just (tc, tys) -> tc `mkTyConApp` tys
}
Nothing -> panic "FamInst.checkForConflicts"
Just (tc, tys) -> tc `mkTyConApp` tys
}
- ; (tvs', _, tau') <- tcInstSkolType FamInstSkol ty
+ ; (_, _, tau') <- tcInstSkolType FamInstSkol ty
; let (fam, tys') = tcSplitTyConApp tau'
; let (fam, tys') = tcSplitTyConApp tau'
@@
-208,11
+201,13
@@
checkForConflicts inst_envs famInst
rhs1 = substTy subst $ synTyConType tycon1
rhs2 = substTy subst $ synTyConType tycon2
rhs1 = substTy subst $ synTyConType tycon1
rhs2 = substTy subst $ synTyConType tycon2
+conflictInstErr :: FamInst -> FamInst -> TcRn ()
conflictInstErr famInst conflictingFamInst
= addFamInstLoc famInst $
addErr (hang (ptext (sLit "Conflicting family instance declarations:"))
2 (pprFamInsts [famInst, conflictingFamInst]))
conflictInstErr famInst conflictingFamInst
= addFamInstLoc famInst $
addErr (hang (ptext (sLit "Conflicting family instance declarations:"))
2 (pprFamInsts [famInst, conflictingFamInst]))
+addFamInstLoc :: FamInst -> TcRn a -> TcRn a
addFamInstLoc famInst thing_inside
= setSrcSpan (mkSrcSpan loc loc) thing_inside
where
addFamInstLoc famInst thing_inside
= setSrcSpan (mkSrcSpan loc loc) thing_inside
where