)
import CmdLineOpts ( DynFlag(..) )
import Digraph ( stronglyConnComp, SCC(..) )
-import Name ( OccName, Name, nameOccName )
+import Name ( Name, nameOccName, nameSrcLoc )
import NameSet
import RdrName ( RdrName, rdrNameOcc )
import BasicTypes ( RecFlag(..) )
\begin{code}
type VertexTag = Int
-type Cycle = [VertexTag]
-type Edge = (VertexTag, VertexTag)
\end{code}
%************************************************************************
bndr_name_set type_sig_vars)
| otherwise = []
in
- mapRn_ (addWarnRn.missingSigWarn) un_sigd_binders `thenRn_`
+ mapRn_ missingSigWarn un_sigd_binders `thenRn_`
rn_mono_binds siglist mbinds `thenRn` \ (final_binds, bind_fvs) ->
returnRn (final_binds, bind_fvs `plusFV` sig_fvs)
rn_mono_binds siglist mbinds `thenRn` \ (binds, bind_fvs) ->
-- Now do the "thing inside", and deal with the free-variable calculations
- thing_inside binds `thenRn` \ (result,result_fvs) ->
+ thing_inside binds `thenRn` \ (result,result_fvs) ->
let
all_fvs = result_fvs `plusFV` bind_fvs `plusFV` sig_fvs
unused_binders = nameSetToList (binder_set `minusNameSet` all_fvs)
\begin{code}
rn_mono_binds :: [RenamedSig] -- Signatures attached to this group
-> RdrNameMonoBinds
- -> RnMS (RenamedHsBinds, --
- FreeVars) -- Free variables
+ -> RnMS (RenamedHsBinds, -- Dependency analysed
+ FreeVars) -- Free variables
rn_mono_binds siglist mbinds
=
returnRn (FunMonoBind sel_name inf new_matches locn, fvs `addOneFV` sel_name)
where
-- Gruesome; bring into scope the correct members of the generic type variables
- -- See comments in RnSource.rnDecl(ClassDecl)
+ -- See comments in RnSource.rnSourceDecl(ClassDecl)
rn_match match@(Match _ (TypePatIn ty : _) _ _)
= extendTyVarEnvFVRn gen_tvs (rnMatch match)
where
rnHsType (text "A SPECIALISE instance pragma") ty `thenRn` \ new_ty ->
returnRn (SpecInstSig new_ty src_loc)
+renameSig (InlineInstSig p src_loc)
+ = returnRn (InlineInstSig p src_loc)
+
renameSig (SpecSig v ty src_loc)
= pushSrcLocRn src_loc $
lookupSigOccRn v `thenRn` \ new_v ->
(what_it_is, loc) = hsSigDoc sig
missingSigWarn var
- = sep [ptext SLIT("definition but no type signature for"), quotes (ppr var)]
+ = pushSrcLocRn (nameSrcLoc var) $
+ addWarnRn (sep [ptext SLIT("Definition but no type signature for"), quotes (ppr var)])
methodBindErr mbind
= hang (ptext SLIT("Can't handle multiple methods defined by one pattern binding"))