Commit 22df1e2a authored by simonpj's avatar simonpj
Browse files

[project @ 2005-08-12 08:32:16 by simonpj]

Grr: another wibble to duplicate signature detection
parent 2c88170c
......@@ -45,6 +45,7 @@ import Digraph ( SCC(..), stronglyConnComp )
import Bag
import Outputable
import Maybes ( orElse, fromJust, isJust )
import Util ( filterOut )
import Monad ( foldM )
\end{code}
......@@ -501,14 +502,14 @@ check_sigs :: (LSig Name -> Bool) -> [LSig Name] -> RnM ()
check_sigs ok_sig sigs
-- Check for (a) duplicate signatures
-- (b) signatures for things not in this group
= do { mappM_ unknownSigErr (filter bad sigs)
; mappM_ dupSigDeclErr (findDupsEq eqHsSig sigs) }
= do { mappM_ unknownSigErr (filter (not . ok_sig) sigs')
; mappM_ dupSigDeclErr (findDupsEq eqHsSig sigs') }
where
-- Don't complain about an unbound name again
bad sig = not (ok_sig sig) &&
case sigName sig of
Just n | isUnboundName n -> False
other -> True
sigs' = filterOut bad_name sigs
bad_name sig = case sigName sig of
Just n -> isUnboundName n
other -> False
-- We use lookupLocatedSigOccRn in the signatures, which is a little bit unsatisfactory
-- because this won't work for:
......
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