[project @ 2005-10-14 11:22:41 by simonpj]
[ghc-hetmet.git] / ghc / compiler / rename / RnHsSyn.lhs
index bc2fa4d..6ce0379 100644 (file)
@@ -4,7 +4,17 @@
 \section[RnHsSyn]{Specialisations of the @HsSyn@ syntax for the renamer}
 
 \begin{code}
-module RnHsSyn where
+module RnHsSyn( 
+       -- Names
+       charTyCon_name, listTyCon_name, parrTyCon_name, tupleTyCon_name,
+       extractHsTyVars, extractHsTyNames, extractHsTyNames_s, 
+       extractFunDepNames, extractHsCtxtTyNames, extractHsPredTyNames,
+
+       -- Free variables
+       hsSigsFVs, hsSigFVs, conDeclFVs, bangTyFVs,
+       
+       maybeGenericMatch
+  ) where
 
 #include "HsVersions.h"
 
@@ -54,6 +64,7 @@ extractHsTyNames ty
     get (HsPredTy p)          = extractHsPredTyNames p
     get (HsOpTy ty1 op ty2)    = getl ty1 `unionNameSets` getl ty2 `unionNameSets` unitNameSet (unLoc op)
     get (HsParTy ty)           = getl ty
+    get (HsBangTy _ ty)        = getl ty
     get (HsNumTy n)            = emptyNameSet
     get (HsTyVar tv)          = unitNameSet tv
     get (HsSpliceTy _)         = emptyNameSet  -- Type splices mention no type variables
@@ -106,16 +117,23 @@ hsSigFVs (SpecSig v ty)     = extractHsTyNames ty
 hsSigFVs other             = emptyFVs
 
 ----------------
-conDeclFVs (L _ (ConDecl _ tyvars context details))
+-- XXX - autrijus - handle return type for GADT
+conDeclFVs (L _ (ConDecl _ _ tyvars context details _))
   = delFVs (map hsLTyVarName tyvars) $
     extractHsCtxtTyNames context         `plusFV`
     conDetailsFVs details
 
-conDetailsFVs (PrefixCon btys)    = plusFVs (map bangTyFVs btys)
+{-
+-- gaw 2004
+conDeclFVs (L _ (GadtDecl _ ty)) 
+  = extractHsTyNames ty
+-}
+
+conDetailsFVs (PrefixCon btys)     = plusFVs (map bangTyFVs btys)
 conDetailsFVs (InfixCon bty1 bty2) = bangTyFVs bty1 `plusFV` bangTyFVs bty2
 conDetailsFVs (RecCon flds)       = plusFVs [bangTyFVs bty | (_, bty) <- flds]
 
-bangTyFVs bty = extractHsTyNames (getBangType (unLoc bty))
+bangTyFVs bty = extractHsTyNames (getBangType bty)
 \end{code}