Add new field to TySynonym
[ghc-hetmet.git] / compiler / hsSyn / Convert.lhs
index 77e9e08..17d6be9 100644 (file)
@@ -17,9 +17,10 @@ import HsSyn as Hs
 import qualified Class (FunDep)
 import RdrName ( RdrName, mkRdrUnqual, mkRdrQual, mkOrig, getRdrName, nameRdrName )
 import qualified Name  ( Name, mkInternalName, getName )
-import Module   ( Module, mkModule )
+import Module   ( ModuleName, mkModuleName, mkModule )
 import RdrHsSyn        ( mkClassDecl, mkTyData )
 import qualified OccName
+import PackageConfig    ( PackageId, stringToPackageId )
 import OccName ( startsVarId, startsVarSym, startsConId, startsConSym,
                  pprNameSpace )
 import SrcLoc  ( Located(..), SrcSpan )
@@ -108,7 +109,7 @@ cvtTop (TySynD tc tvs rhs)
   = do { tc' <- tconNameL tc
        ; tvs' <- cvtTvs tvs
        ; rhs' <- cvtType rhs
-       ; returnL $ TyClD (TySynonym tc' tvs' rhs') }
+       ; returnL $ TyClD (TySynonym tc' tvs' Nothing rhs') }
 
 cvtTop (DataD ctxt tc tvs constrs derivs)
   = do { stuff <- cvt_tycl_hdr ctxt tc tvs
@@ -209,7 +210,7 @@ cvtForD (ImportF callconv safety from nm ty)
   = do { nm' <- vNameL nm
        ; ty' <- cvtType ty
        ; let i = CImport (cvt_conv callconv) safety' c_header nilFS cis
-       ; return $ ForeignImport nm' ty' i False }
+       ; return $ ForeignImport nm' ty' i }
 
   | otherwise
   = failWith $ text (show from)<+> ptext SLIT("is not a valid ccall impent")
@@ -223,7 +224,7 @@ cvtForD (ExportF callconv as nm ty)
   = do { nm' <- vNameL nm
        ; ty' <- cvtType ty
        ; let e = CExport (CExportStatic (mkFastString as) (cvt_conv callconv))
-       ; return $ ForeignExport nm' ty' e False }
+       ; return $ ForeignExport nm' ty' e }
 
 cvt_conv CCall   = CCallConv
 cvt_conv StdCall = StdCallConv
@@ -569,7 +570,7 @@ thRdrName :: OccName.NameSpace -> String -> TH.NameFlavour -> RdrName
 --      which will give confusing error messages later
 -- 
 -- The strict applications ensure that any buried exceptions get forced
-thRdrName ctxt_ns occ (TH.NameG th_ns mod) = (mkOrig     $! (mk_mod mod)) $! (mk_occ (mk_ghc_ns th_ns) occ)
+thRdrName ctxt_ns occ (TH.NameG th_ns pkg mod) = (mkOrig $! (mkModule (mk_pkg pkg) (mk_mod mod))) $! (mk_occ (mk_ghc_ns th_ns) occ)
 thRdrName ctxt_ns occ (TH.NameL uniq)      = nameRdrName $! (((Name.mkInternalName $! (mk_uniq uniq)) $! (mk_occ ctxt_ns occ)) noSrcLoc)
 thRdrName ctxt_ns occ (TH.NameQ mod)       = (mkRdrQual  $! (mk_mod mod)) $! (mk_occ ctxt_ns occ)
 thRdrName ctxt_ns occ (TH.NameU uniq)      = mkRdrUnqual $! (mk_uniq_occ ctxt_ns occ uniq)
@@ -617,8 +618,11 @@ mk_ghc_ns TH.DataName  = OccName.dataName
 mk_ghc_ns TH.TcClsName = OccName.tcClsName
 mk_ghc_ns TH.VarName   = OccName.varName
 
-mk_mod :: TH.ModName -> Module
-mk_mod mod = mkModule (TH.modString mod)
+mk_mod :: TH.ModName -> ModuleName
+mk_mod mod = mkModuleName (TH.modString mod)
+
+mk_pkg :: TH.ModName -> PackageId
+mk_pkg pkg = stringToPackageId (TH.pkgString pkg)
 
 mk_uniq :: Int# -> Unique
 mk_uniq u = mkUniqueGrimily (I# u)