X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Frename%2FRnHsSyn.lhs;h=4789d89c18bfc37e4800cc9ddc41eabdc1b7303b;hb=f8d8ea662828a295e27a2f5f52ce38d68fd3dee2;hp=7d12987a46366764e89d85171ab17e3a76619000;hpb=5e6242927839c8ddc73a55eb7828c0b7e4cc3ab2;p=ghc-hetmet.git diff --git a/ghc/compiler/rename/RnHsSyn.lhs b/ghc/compiler/rename/RnHsSyn.lhs index 7d12987..4789d89 100644 --- a/ghc/compiler/rename/RnHsSyn.lhs +++ b/ghc/compiler/rename/RnHsSyn.lhs @@ -15,7 +15,6 @@ import TysWiredIn ( tupleTyCon, listTyCon, charTyCon ) import Name ( Name, getName, isTyVarName ) import NameSet import BasicTypes ( Boxity ) -import Maybes ( orElse ) import Outputable \end{code} @@ -36,6 +35,7 @@ type RenamedHsBinds = HsBinds Name RenamedPat type RenamedHsExpr = HsExpr Name RenamedPat type RenamedHsModule = HsModule Name RenamedPat type RenamedInstDecl = InstDecl Name RenamedPat +type RenamedMatchContext = HsMatchContext Name type RenamedMatch = Match Name RenamedPat type RenamedMonoBinds = MonoBinds Name RenamedPat type RenamedPat = InPat Name @@ -97,9 +97,9 @@ extractHsCtxtTyNames ctxt = foldr (unionNameSets . extractHsPredTyNames) emptyNa -- You don't import or export implicit parameters, -- so don't mention the IP names -extractHsPredTyNames (HsPClass cls tys) +extractHsPredTyNames (HsClassP cls tys) = unitNameSet cls `unionNameSets` extractHsTyNames_s tys -extractHsPredTyNames (HsPIParam n ty) +extractHsPredTyNames (HsIParam n ty) = extractHsTyNames ty \end{code} @@ -120,6 +120,9 @@ In all cases this is set up for interface-file declarations: \begin{code} tyClDeclFVs :: RenamedTyClDecl -> NameSet +tyClDeclFVs (ForeignType {}) + = emptyFVs + tyClDeclFVs (IfaceSig {tcdType = ty, tcdIdInfo = id_infos}) = extractHsTyNames ty `plusFV` plusFVs (map hsIdInfoFVs id_infos) @@ -127,8 +130,7 @@ tyClDeclFVs (IfaceSig {tcdType = ty, tcdIdInfo = id_infos}) tyClDeclFVs (TyData {tcdCtxt = context, tcdTyVars = tyvars, tcdCons = condecls, tcdDerivs = derivings}) = delFVs (map hsTyVarName tyvars) $ extractHsCtxtTyNames context `plusFV` - plusFVs (map conDeclFVs condecls) `plusFV` - mkNameSet (derivings `orElse` []) + plusFVs (map conDeclFVs condecls) tyClDeclFVs (TySynonym {tcdTyVars = tyvars, tcdSynRhs = ty}) = delFVs (map hsTyVarName tyvars) (extractHsTyNames ty) @@ -184,14 +186,14 @@ bangTyFVs bty = extractHsTyNames (getBangType bty) ---------------- hsIdInfoFVs (HsUnfold _ unf) = ufExprFVs unf -hsIdInfoFVs (HsWorker n) = unitFV n +hsIdInfoFVs (HsWorker n a) = unitFV n hsIdInfoFVs other = emptyFVs ---------------- ufExprFVs (UfVar n) = unitFV n ufExprFVs (UfLit l) = emptyFVs ufExprFVs (UfLitLit l ty) = extractHsTyNames ty -ufExprFVs (UfCCall cc ty) = extractHsTyNames ty +ufExprFVs (UfFCall cc ty) = extractHsTyNames ty ufExprFVs (UfType ty) = extractHsTyNames ty ufExprFVs (UfTuple tc es) = hsTupConFVs tc `plusFV` plusFVs (map ufExprFVs es) ufExprFVs (UfLam v e) = ufBndrFVs v (ufExprFVs e)